0

コードの何が問題になっていますか? ボタンとラベルが表示されません。

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class HelloPanelLabel extends JFrame {

    public static void main(String[] args) {
        new HelloPanelLabel(); // creates an instance of frame class
    }

    public HelloPanelLabel() {

        this.setSize(200, 100);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setTitle("Hello World!");
        this.setVisible(true);

        Toolkit tk=Toolkit.getDefaultToolkit();
        Dimension d= tk.getScreenSize();
        int x=(d.height/2);
        int y=(d.width/2);
        this.setLocation(x, y);
        //JPanel panel1 = new JPanel();
        JLabel label1 = new JLabel("hello, world");
        //panel1.add(label1);
        JButton button1 = new JButton("Click me!");
        //panel1.add(button1);
        this.setVisible(true);

    }

}
4

3 に答える 3

1

レイアウトを設定し、コンポーネントをフレームに追加する必要があります。

setLayout(new FlowLayout());
//JPanel panel1 = new JPanel();
JLabel label1 = new JLabel("hello, world");
add(label1);
//panel1.add(label1);
JButton button1 = new JButton("Click me!");
add(button1);
//panel1.add(button1);
 this.setVisible(true);

コメントに記載されているように、電話する必要がありますpack()。ただし、より複雑なレイアウトを定義する場合は、より複雑なレイアウトを作成する必要があります。

于 2013-06-14T13:28:26.723 に答える
1

JButtonとが表示されない理由は、これら 2 つのコンポーネントを含む を にJLabel追加していないためです。コードを少し変更する必要があります。これがそれです:JPanelJFrame

panel1.add(label1);
JButton button1 = new JButton("Click me!");
panel1.add(button1);
getContentPane().add(panel1);//Add to ContentPane of JFrame
this.setVisible(true);

そしてthis.setVisible(true)、プログラムの前の行を削除します。

于 2013-06-14T13:42:44.407 に答える