簡體   English   中英

將組件添加到JFrame

[英]Adding components to a JFrame

在下面的程序中,我創建了一個按鈕,當單擊該按鈕時,它將顯示另一個具有添加組件的jframe。 但是,當我單擊此按鈕時,它沒有顯示任何組件,只有空白的jframe和標題出現。 誰能解釋我的問題?


b1.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent arg0) {
            JFrame f1 = new JFrame();
            f1.setVisible(true);
            f1.setSize(800, 700);
            f1.setTitle("Calc");
            f1.getContentPane().setLayout(new FlowLayout());

            JTextField t1 = new JTextField(10);
            JTextField t2 = new JTextField(10);
            JTextField t3 = new JTextField(10);

            JButton b1 = new JButton("1");
            JButton b2 = new JButton("2");
            JButton b3 = new JButton("3");
            JButton b4 = new JButton("4");
            JButton b5 = new JButton("5");
            JButton b6 = new JButton("6");
            JButton b7 = new JButton("7");
            JButton b8 = new JButton("8");
            JButton b9 = new JButton("9");
            JButton b10 = new JButton("0");
            JButton b11 = new JButton("Add");
            JButton b12 = new JButton("Sub");
            JButton b13 = new JButton("Mul");
            JButton b14 = new JButton("Div");
            JButton b15 = new JButton("=");
            JButton b16 = new JButton("CLR");

            f.getContentPane().add(t1);
            f.getContentPane().add(t2);
            f.getContentPane().add(t3);

            f.getContentPane().add(b1);
            f.getContentPane().add(b2);
            f.getContentPane().add(b3);
            f.getContentPane().add(b4);
            f.getContentPane().add(b5);
            f.getContentPane().add(b6);
            f.getContentPane().add(b7);
            f.getContentPane().add(b8);
            f.getContentPane().add(b9);
            f.getContentPane().add(b10);
            f.getContentPane().add(b11);
            f.getContentPane().add(b12);
            f.getContentPane().add(b13);
            f.getContentPane().add(b14);
            f.getContentPane().add(b15);
            f.getContentPane().add(b16);

    }
});

您的情況可能是拼寫錯誤,由其他答案作為地址。

  1. 使用f1代替f
  2. 移動行f1.setVisible(true); 完成向其添加按鈕的操作后,將其顯示在底部下方,即f1.getContentPane().add(b16);

在您的代碼中,您已將JFrame改為f1 ,並向f添加了組件,因此它不會在框架中添加任何內容,因此,請嘗試使用添加f1而不是f並移動f1.setVisible(true); 將每個組件添加到f1 ,如下所示

    b1.addActionListener(new ActionListener() {

  @Override
 public void actionPerformed(ActionEvent arg0) {
        JFrame f1 = new JFrame();

        f1.setSize(800, 700);
        f1.setTitle("Calc");
        f1.getContentPane().setLayout(new FlowLayout());

        JTextField t1 = new JTextField(10);
        JTextField t2 = new JTextField(10);
        JTextField t3 = new JTextField(10);

        JButton b1 = new JButton("1");
        JButton b2 = new JButton("2");
        JButton b3 = new JButton("3");
        JButton b4 = new JButton("4");
        JButton b5 = new JButton("5");
        JButton b6 = new JButton("6");
        JButton b7 = new JButton("7");
        JButton b8 = new JButton("8");
        JButton b9 = new JButton("9");
        JButton b10 = new JButton("0");
        JButton b11 = new JButton("Add");
        JButton b12 = new JButton("Sub");
        JButton b13 = new JButton("Mul");
        JButton b14 = new JButton("Div");
        JButton b15 = new JButton("=");
        JButton b16 = new JButton("CLR");

        f1.getContentPane().add(t1);
        f1.getContentPane().add(t2);
        f1.getContentPane().add(t3);

        f1.getContentPane().add(b1);
        f1.getContentPane().add(b2);
        f1.getContentPane().add(b3);
        f1.getContentPane().add(b4);
        f1.getContentPane().add(b5);
        f1.getContentPane().add(b6);
        f1.getContentPane().add(b7);
        f1.getContentPane().add(b8);
        f1.getContentPane().add(b9);
        f1.getContentPane().add(b10);
        f1.getContentPane().add(b11);
        f1.getContentPane().add(b12);
        f1.getContentPane().add(b13);
        f1.getContentPane().add(b14);
        f1.getContentPane().add(b15);
        f1.getContentPane().add(b16);
         f1.setVisible(true);
    }
   });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM