9

新しい小さなアプリケーションの開発を始めようとしています。約10種類のGUIが含まれます。

Netbeansを使用して、JFrameまたはJPanelのいずれかを作成できますが、どちらを使用する必要がありますか?

残りのGUIへのボタンを含むメニューGUIがあります。また、いくつかのコントローラーをパラメーターとして渡す必要があります

4

6 に答える 6

23

JPanelとJFrameの違いについて少し混乱していると思います。JPanelは、ボタン、テキストフィールド、その他のJPanelなどの他のGUIコンポーネントを保持するためのコンテナとして機能します。

一方、JFrameはトップレベルのコンポーネント(メインのJPanel)と見なすことができます。

このサイトとこのサイトから取られた引用と画像。

JFrame

フレームは、タイトルと境界線のあるトップレベルのウィンドウです。

以下は、典型的なJFrameの画像です。

典型的なJFrame

JPanel

このJPanelクラスは、軽量コンポーネント用の汎用コンテナを提供します。

以下はJPanelsの画像です。各色は異なるJPanelを表します

ここに画像の説明を入力してください

したがって、質問に答えるには、両方を使用する必要があります。JFrame(メインコンテナとして機能)から始め、JPanelsを追加してグラフィカルユーザーインターフェイスを構築します。

これらの2つのリンクを読んで、より良いアイデアを得て、コードを確認することをお勧めします。

于 2013-02-13T14:42:15.307 に答える
1

10種類のGUI

JPanelベースのGUI要素を表示するためのさまざまなオプションがあります。

複数のJFrameの使用、良い/悪い習慣を参照してください。ウィジェットのさまざまなグループを組み合わせたり表示したりすることに関する他の多くのアイデアについて。

NBは、またはのいずれJFrameかを拡張することに抵抗JPanelします。代わりに、単に1つへの参照を保持し、必要に応じてそれを使用します。

于 2013-02-13T14:38:33.100 に答える
0

JFrameはトップレベルのコンポーネントです。これは、アプリケーションの「スキン」です。JPanelsはトップレベルのコンテナではありません。それらは、他のトップレベルのコンテナ内に存在する必要があります。JPanelsは、JFrameのコンテンツペインに追加できます。

少しのサンプルコードであなたの質問に答えます。

import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.GridLayout;

public class Example extends JFrame implements Runnable
{
    JPanel left; 
    JPanel right;
    public Example()
    {
        super("Two JPanels in here");
        left = new JPanel(){
            public void paintComponent(Graphics g)
            {
                g.setColor(Color.red);
                g.fillRect(0,0,getWidth(), getHeight());
            }
        };
        right = new JPanel(){
            public void paintComponent(Graphics g)
            {
                g.setColor(Color.blue);
                g.fillRect(0,0,getWidth(), getHeight());
            }
        };

    }
    public void run()
    {
        setSize(500,500);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        getContentPane().setLayout(new GridLayout(1,2));
        getContentPane().add(left);
        getContentPane().add(right);
        setVisible(true);
    }
    public static void main(String[] args)
    {
        Example e = new Example();
        javax.swing.SwingUtilities.invokeLater(e);
    }

}

パネルがコンテンツペイン内にどのように表示されるかに注目してください。

于 2013-02-13T14:30:46.113 に答える
0

この記事は有益なようです:

概要:

  1. JPanelは汎用コンテナとして機能しますが、JFrameは、警告ウィンドウや通知ウィンドウなどのスタンドアロンアプリケーションで一般的に使用されるウィンドウです。

  2. JPanelは、より複雑な操作やアプリケーションに使用される領域を表します。

  3. JPanelでは、1つのパネルで多くの操作を実行できますが、JFrameでは、異なる目的のために内部フレームを使用できます。

于 2013-02-13T14:32:11.113 に答える
0

JFrameがトップレベルウィンドウのJPanelよりも柔軟であるかのように読み取られます。@ncmathsadistが指摘しているように、JPanelはJFrameに埋め込まれている場合もあります。

于 2013-02-13T14:33:17.543 に答える
-1

これらの回答のいくつかは、WAAAAAYが詳細すぎます。

JPanelを使用するだけです。

パネルはいつでもフレームに入れることができます。パネルにフレームを入れることはできません。

于 2013-02-13T16:28:58.803 に答える