Java 为什么不是';我的JFrame里没有显示任何东西吗?
为什么我的GUI不显示任何按钮、标签或文本字段 我想我已经全部设置好了,但是当我运行它时,只有框架显示,没有任何内容出现Java 为什么不是';我的JFrame里没有显示任何东西吗?,java,user-interface,Java,User Interface,为什么我的GUI不显示任何按钮、标签或文本字段 我想我已经全部设置好了,但是当我运行它时,只有框架显示,没有任何内容出现 package BasicGame; import java.awt.Container; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.s
package BasicGame;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
public class Gui extends JFrame{
private static final long serialVersionUID = 1L;
private JLabel label;
private JTextField textField;
private JButton button;
private buttonHandler bHandler;
public Gui(){
setTitle("Basic Gui");
setResizable(false);
setSize(500, 200);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container pane = getContentPane();
pane.setLayout(null);
button = new JButton("button");
button.setBounds(50, 60, 50, 70);
bHandler = new buttonHandler();
button.addActionListener(bHandler);
label = new JLabel("Hello", SwingConstants.RIGHT);
label.setBounds(50, 60, 50, 70);
textField = new JTextField(10);
textField.setBounds(50, 60, 50, 70);
pane.add(button);
pane.add(label);
pane.add(textField);
}
public class buttonHandler implements ActionListener{
public void actionPerformed(ActionEvent e){
System.exit(0);
}
}
@SuppressWarnings("unused")
public static void main(String[] args){
Gui gui = new Gui();
}
}
将setVisible()
移动到构造函数的末尾。在设置JFrame
之后,您将添加所有组件,并且make可见,因此您看不到任何更改
这将显示包含所有组件的JFrame
:
public Gui(){
setTitle("Basic Gui");
setResizable(false);
setSize(500, 200);
setDefaultCloseOperation(EXIT_ON_CLOSE);
Container pane = getContentPane();
pane.setLayout(null);
button = new JButton("button");
button.setBounds(50, 60, 50, 70);
bHandler = new buttonHandler();
button.addActionListener(bHandler);
label = new JLabel("Hello", SwingConstants.RIGHT);
label.setBounds(50, 60, 50, 70);
textField = new JTextField(10);
textField.setBounds(50, 60, 50, 70);
pane.add(button);
pane.add(label);
pane.add(textField);
setVisible(true); // Move it to here
}
下面是在我移动setVisible
语句并编译代码前后帧的外观
之前:
之后:
在你纠正了那件小事之后,我的归宁已经走得很远了!再次感谢!!!