この記事では、Java の Swing ツールキットについて説明します。 JFrame、JDialog、JApplet などのコンポーネントを使用してグラフィカル ユーザー インターフェイス (GUI) を構築するためのライブラリ。これらは必須のトップレベル コンテナとして機能します。また、Swing コンポーネントを使用して簡単な問い合わせフォームを作成する方法も示します。
Swing は、単純なグラフィカル ユーザー インターフェイス (GUI) を作成するために使用される Java ライブラリです。これは、GUI を構築するためのコンポーネントのコレクションを提供する GUI ウィジェット ツールキットです。 (Oracle Docs、未確認)。 Swing コンポーネントはすべて Java プログラミング言語で書かれています。一般に便利なトップレベルのコンテナ クラスは、JFrame、JDialog、JApplet の 3 つです (Oracle Docs、未確認)。
最上位コンテナ:
JFrame は、タイトルと境界線を持つトップレベルのウィンドウです。
(Oracle Docs、未確認、フレームの作成方法 (メイン ウィンドウ)。
JDialog ウィンドウは、メインの Swing アプリケーション ウィンドウとは別に一時的に表示される独立したサブウィンドウです。
(Oracle Docs、未確認、ダイアログの作成方法)
「JApplet」、Java アプレットは、Java テクノロジが有効になっているブラウザがインターネットからダウンロードして実行できる特別な種類の Java プログラムです。アプレットは通常、Web ページ内に埋め込まれ、ブラウザのコンテキストで実行されます。アプレットはアプレットのサブクラスである必要があります。アプレットクラス。アプレット クラスは、アプレットとブラウザ環境の間の標準インターフェイスを提供します。」 (Oracle Docs、未確認)。
Swing コンポーネントを利用するすべてのプログラムには、少なくとも 1 つのトップレベル コンテナが含まれています。このトップレベルのコンテナは、コンテナ内のすべての Swing コンポーネントを含む格納階層のルートとして機能します (Oracle Docs、未確認)。
通常、Swing ベースの GUI を備えたスタンドアロン アプリケーションには、ルートとして JFrame を持つ少なくとも 1 つの包含階層があります。たとえば、アプリケーションにメイン ウィンドウと 2 つのダイアログがある場合、アプリケーションには 3 つの包含階層があり、それぞれが独自の最上位コンテナーを持ちます。メイン ウィンドウにはルートとして JFrame があり、各ダイアログにはルートとして JDialog があります。また、Swing ベースのアプレットには少なくとも 1 つの包含階層があり、そのうちの 1 つは JApplet オブジェクトによってルートされます。たとえば、ダイアログを表示するアプレットには 2 つの包含階層があります。ブラウザ ウィンドウ内のコンポーネントは、JApplet オブジェクトをルートとする包含階層に属し、ダイアログは JDialog オブジェクトをルートとする包含階層に属します。
JComponent クラス:
トップレベルのコンテナを除き、「J」で始まるすべての Swing コンポーネントは JComponent クラスから派生します。たとえば、JPanel、JScrollPane、JButton、および JTable はすべて JComponent を継承します。ただし、JFrame と JDialog はトップレベルのコンテナであるため、そうではありません (Oracle Docs、未確認、JComponent Class)
フレームとパネルの違い:
フレーム:
JFrame は、タイトル、境界線、ボタンを備えたウィンドウを表すトップレベルのコンテナです。
通常、アプリケーションのメイン ウィンドウとして使用されます。
JFrame には、JPanel、JScrollPane、JButton、JTable などの複数のコンポーネントを含めることができます。
パネル:
JPanel は、ウィンドウ内でコンポーネントのセットをグループ化するために使用される汎用コンテナです。
タイトルバーや閉じるボタンなどのウィンドウ装飾はありません。
JPanel は、JFrame 内のレイアウトを整理および管理するためによく使用されます。
Swing コンポーネントを利用するすべてのプログラムには、少なくとも 1 つのトップレベル コンテナが含まれています。このトップレベルのコンテナは、コンテナ内のすべての Swing コンポーネントを含む格納階層のルートとして機能します (Oracle Docs、未確認)。
通常、Swing ベースの GUI を備えたスタンドアロン アプリケーションには、ルートとして JFrame を持つ少なくとも 1 つの包含階層があります。たとえば、アプリケーションにメイン ウィンドウと 2 つのダイアログがある場合、アプリケーションには 3 つの包含階層があり、それぞれが独自の最上位コンテナーを持ちます。メイン ウィンドウにはルートとして JFrame があり、各ダイアログにはルートとして JDialog があります。
Swing ベースのアプレットには少なくとも 1 つの包含階層があり、そのうちの 1 つは JApplet オブジェクトによってルートされます。たとえば、ダイアログを表示するアプレットには 2 つの包含階層があります。ブラウザ ウィンドウ内のコンポーネントは、JApplet オブジェクトをルートとする包含階層に属し、ダイアログは JDialog オブジェクトをルートとする包含階層に属します。
以下の例には、JFrame と JPanel に加えて、GridBagLayout を使用するボタン、テキスト フィールド、ラベルなどの追加コンポーネントが含まれています。さらに、JDialog、JOptionPane コンポーネント、およびダイアログ ウィンドウ コンポーネントを使用してメッセージも表示します。これは、Swing コンポーネントを使用したシンプルなグラフィカル ユーザー インターフェイス (GUI) のお問い合わせフォームです。
//--- Abstract Window Toolkit (AWT) // Provides layout manager for arranging components in five regions: // north, south, east, west, and center. import java.awt.BorderLayout; // Grid layout - Specifies constraints for components that are laid out using the GridBagLayout. import java.awt.GridBagConstraints; // Grid - layout manager that aligns components vertically and horizontally, // without requiring the components to be of the same size. import java.awt.GridBagLayout; // Gird padding - Specifies the space (padding) between components and their borders. import java.awt.Insets; // Button - Provides the capability to handle action events like button clicks. import java.awt.event.ActionEvent; // Button event - Allows handling of action events, such as button clicks. import java.awt.event.ActionListener; //--- swing GUI // Button - Provides a button component that can trigger actions when clicked. import javax.swing.JButton; // Frame - Provides a window with decorations // such as a title, border, and buttons for closing and minimizing. import javax.swing.JFrame; // Labels - Provides a display area for a short text string or an image, or both. import javax.swing.JLabel; // Submition Message - Provides standard dialog boxes such as message, input, and confirmation dialogs. import javax.swing.JOptionPane; // Panel - Provides a generic container for grouping components together. import javax.swing.JPanel; // Scroll user message - Provides to the a scrollable view of a lightweight component. import javax.swing.JScrollPane; // User message - Provides a multi-line area to display/edit plain text. import javax.swing.JTextArea; // Name & Email - Provides a single-line text field for user input. import javax.swing.JTextField; /** * This class generates a simple contact form. The form includes fields for the * user's name, email, and message, and a submit button to submit the form. * * @author Alejandro Ricciardi * @version 1.0 * @date 06/16/2024 */ public class contactForm { /** * The main method to create and display the contact form. * * @param args Command line arguments */ public static void main(String[] args) { /*------------ | Frame | ------------*/ // ---- Initializes frame // Creates the main application frame JFrame frame = new JFrame("Contact Form"); frame.setSize(400, 300); // Set the size of the frame // Close the application when the frame is closed frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLayout(new BorderLayout()); // Use BorderLayout for the frame /*------------ | Panel | ------------*/ // ---- Initializes panel // Create a panel with GridBagLayout JPanel panel = new JPanel(new GridBagLayout()); GridBagConstraints gridForm = new GridBagConstraints(); gridForm.insets = new Insets(5, 5, 5, 5); // Add padding around components // ---- Creates and adds grid components to the panel // -- Name // Adds "Name" label JLabel nameLabel = new JLabel("Name:"); gridForm.gridx = 0; // Position at column 0 gridForm.gridy = 0; // Position at row 0 panel.add(nameLabel, gridForm); // Add text field for name input JTextField nameField = new JTextField(20); gridForm.gridx = 1; // Position at column 1 gridForm.gridy = 0; // Position at row 0 panel.add(nameField, gridForm); // -- Email // Add "Email" label JLabel emailLabel = new JLabel("Email:"); gridForm.gridx = 0; // Position at column 0 gridForm.gridy = 1; // Position at row 1 panel.add(emailLabel, gridForm); // Adds text field for email input JTextField emailField = new JTextField(20); gridForm.gridx = 1; // Position at column 1 gridForm.gridy = 1; // Position at row 1 panel.add(emailField, gridForm); // Adds "Message" label JLabel messageLabel = new JLabel("Message:"); gridForm.gridx = 0; // Position at column 0 gridForm.gridy = 2; // Position at row 2 panel.add(messageLabel, gridForm); // -- Message // Adds text area for message input with a scroll pane JTextArea messageArea = new JTextArea(5, 20); JScrollPane scrollPane = new JScrollPane(messageArea); gridForm.gridx = 1; // Position at column 1 gridForm.gridy = 2; // Position at row 2 panel.add(scrollPane, gridForm); // Adds "Submit" button JButton submitButton = new JButton("Submit"); gridForm.gridx = 1; // Position at column 1 gridForm.gridy = 3; // Position at row 3 panel.add(submitButton, gridForm); // Adds the panel to the frame's center frame.add(panel, BorderLayout.CENTER); // Make the frame visible frame.setVisible(true); /*------------ | JDialog | ------------*/ // Add action listener to the submit button ActionListener submitBtnClicked = new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // Display a message dialog when the submit button is clicked JOptionPane.showMessageDialog(frame, "Message was sent!"); } }; submitButton.addActionListener(submitBtnClicked); } }
ダイアログ ウィンドウについて詳しく知りたい場合は、次のビデオで JDialog JOptionPane メッセージの実装方法が説明されています。
要約すると、Java の Swing ツールキットは、開発者がユーザーフレンドリーで視覚的に構造化された GUI を作成できるコンポーネントのセットを提供します。このライブラリは、JPanel や JOptionPane などの重要な要素とともに、JFrame、JDialog、JApplet などのトップレベルのコンテナを使用します。
参考文献:
Oracle ドキュメント。 (NDA)。 スイング。オラクル。 https://docs.oracle.com/javase/8/docs/technotes/guides/swing/
Oracle ドキュメント。 (n.d.b)。トップレベルコンテナの使用。 Java™ チュートリアル。オラクル。 https://docs.oracle.com/javase/tutorial/uiswing/components/toplevel.html
Oracle ドキュメント。 (n.d.c)。 Java アプレット。 Java™ チュートリアル。オラクル。 https://docs.oracle.com/javase/tutorial/deployment/applet/index.html
元々は、2024 年 11 月 3 日に Alex.omegapy によって Medium で公開されました。
以上がSwing コンポーネントを使用した Java GUI の作成の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Javaのコア機能には、プラットフォームの独立性、オブジェクト指向のデザイン、豊富な標準ライブラリが含まれます。 1)オブジェクト指向の設計により、コードは多型機能を通じてより柔軟で保守可能になります。 2)ゴミ収集メカニズムは、開発者のメモリ管理の負担を解放しますが、パフォーマンスの問題を回避するために最適化する必要があります。 3)標準ライブラリは、コレクションからネットワークまでの強力なツールを提供しますが、コードを簡潔に保つためにデータ構造を慎重に選択する必要があります。

はい、javacanruneverywhereduetoits "writeonce、runanywhere"哲学 "哲学

jdkincludestoolsfordeveloping and compilingjavacode、whilejvmrunsthecompiledbytecode.1)jdkcontainsjre、compiler、andutitivities.2)jvmmanagesbytecodeexexecutionandsupports "writeonce、runany。

Javaの主な機能には、1)オブジェクト指向設計、2)プラットフォームの独立性、3)ガベージ収集メカニズム、4)豊富なライブラリとフレームワーク、5)並行性サポート、6)例外処理、7)連続進化。 Javaのこれらの機能により、効率的で保守可能なソフトウェアを開発するための強力なツールになります。

javaachievesplatformedentenceThetherdthejvm.1)codecompiledintobytecode、notmachinecode.2)thejvminterpretsbytecodeonanyplatform、「writeonce、runany」を保証します

Javaは、プラットフォームの独立性により、エンタープライズレベルのアプリケーションで広く使用されています。 1)プラットフォームの独立性は、Java Virtual Machine(JVM)を介して実装されているため、Javaをサポートする任意のプラットフォームでコードを実行できます。 2)クロスプラットフォームの展開と開発プロセスを簡素化し、柔軟性とスケーラビリティを高めます。 3)ただし、パフォーマンスの違いとサードパーティライブラリの互換性に注意を払い、純粋なJavaコードやクロスプラットフォームテストの使用などのベストプラクティスを採用する必要があります。

javaplaysasificanificantduetduetoitsplatformindepence.1)itallowscodetobewrittendunonvariousdevices.2)java'secosystemprovidesutionforiot.3)そのセキュリティフィートルセンハンス系

TheSolution to HandlefilepathsaCrosswindossandlinuxinjavaistousepaths.get()fromthejava.nio.filepackage.1)usesystem.getProperty( "user.dir")およびhearterativepathtoconstructurctthefilepath.2)


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境
