JPanel没有添加按钮和文本字段

时间:2017-03-17 11:17:36

标签: java swing jpanel awt

我不明白为什么编译程序时panel.add(txtnum1)panel.add(button2)没有显示出来。 panel.add(button)工作得很好,我的编译器没有抛出任何警告或错误,我是否错过了什么?

package gui;

import javax.swing.*;
import java.awt.*;

public class GUI {
 public static void main(String[] args) {
    JFrame frame = new JFrame();
    frame.setVisible(true);
    frame.setSize(new Dimension(300, 500));
    frame.setLocationRelativeTo(null);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JPanel panel = new JPanel();
    panel.setBackground(Color.GRAY);
    frame.getContentPane().add(panel);
    JButton button = new JButton("Submit");
    panel.add(button);

    JTextField txtnum1 = new JTextField();
    txtnum1.setPreferredSize(new Dimension(30, 50));
    panel.add(txtnum1);

    JButton button2 = new JButton("Clear");
    panel.add(button2);
 }

}

2 个答案:

答案 0 :(得分:1)

使用Swing实现GUI应用程序时,我喜欢在构建i的代码中使用此方法(我们假设在JFrame容器内没有JPanel个容器的简单GUI和那样的东西):

  1. 创建JPanel并初始化
  2. 创建JFrame
  3. 为该面板创建GUI组件并添加它们
  4. JPanel内的每个JFrame添加小组JPanel(从 2重复)
  5. 在屏幕上显示JFrame
  6. 所以,你的代码看起来像这样:

    JFrame

    经过测试,可以在Eclipse中使用。

答案 1 :(得分:0)

在添加完所有组件后,最后应调用setVisible(true)。

frame.setVisible(true);放在最后,它将按预期工作。