制作GUI时遇到麻烦。标签,旋转器和按钮没有出现

时间:2017-07-19 17:03:45

标签: java eclipse swing

我在这个JFrame中添加了不少对象。但是,在我将它们主要悬停在按钮以及JTextField之前,它们中的许多都不会出现。我只包含了JSpinner组件,所以它不长。我的旋转器中是否有任何东西或者我的旋转器缺少会使它们不出现? 我把它剥了很多,所以它只是一个文本字段。仍然没有出现。我把所有东西放在面板上,但仍然没有显示出来。

public static void screen() {
    JFrame myFrame = new JFrame("Yore");
    myFrame.setAlwaysOnTop(true);
    myFrame.setResizable(false);
    myFrame.setForeground(Color.BLACK);
    myFrame.setSize(300,365);
    myFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    myFrame.setVisible(true);
    myFrame.setBackground(Color.WHITE);
    JPanel panel = new JPanel();
    myFrame.setContentPane(panel);
    JTextField Username = new JTextField();
    Username.setText("Username");
    Username.setColumns(10);
    panel.add(Username);

    }

4 个答案:

答案 0 :(得分:0)

尝试使用框架的布局管理器。此外,将JPanel添加到框架并将所有Spinners添加到Panel。

使用正确的布局管理器,您可以以编程方式将Spinners添加到Panel中,这样您就不需要对边界进行硬编码。例如,您还可以在窗口调整大小时调整它们的大小。

看看这里开始使用布局管理器。 https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html

答案 1 :(得分:0)

myFrame.getContentPane()返回一个AWT容器,而不是一个Swing组件。要改变这一点,你必须使用

JPanel panel = new JPanel();
panel.add(..);
myFrame.setContentPane(panel);
panel.validate();

将您的微调器添加到面板中,问题就解决了。

答案 2 :(得分:0)

对不起,我忘记了一句话。

public static void screen() {
    JFrame myFrame = new JFrame("Yore");
    myFrame.setAlwaysOnTop(true);
    myFrame.setResizable(false);
    myFrame.setForeground(Color.BLACK);
    myFrame.setSize(300,365);
    myFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
    myFrame.setVisible(true);
    myFrame.setBackground(Color.WHITE);
    JPanel panel = new JPanel();
    myFrame.setContentPane(panel);
    JTextField Username = new JTextField();
    Username.setText("Username");
    Username.setColumns(10);
    panel.add(Username); 

  panel.validate();

  }

答案 3 :(得分:0)

向面板添加微调器。然后将面板添加到您的JFrame。

panel.add(spinner_5);