JLabel
没有出现! buttons()
仅在我点击frame
时显示。是否可以在不点击的情况下显示它?
public frame() {
frame.setTitle("MyWindowTitle");
frame.setSize(width, height);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(true);
// frame.setLayout(new FlowLayout());
frame.setLayout(null);
frame.getContentPane().setBackground(Color.RED);
frame.pack();
frame.setVisible(true);
JPanel panel = new JPanel();
frame.add(panel);
panel.setLocation(150, 150);
panel.add(new JButton("Hello!"));
scorel = new JLabel("Score: " + score);
frame.add(scorel);
buttons();
}
答案 0 :(得分:0)
请
//frame.pack(); //Dont call pack() if you use null layout
frame.setVisible(true);
是您方法的最后一个陈述。
在setSize()
中使用panel
时,还要使用null layout
frame
。如果没有setSize
和setLocation
或setBounds
,则您的内容无法在null layout
中正确显示。
panel.setSize(400, 300);
也
scorel.setSize(width, height);
scorel.setLocation(x, y);
良好做法
尽量避免空布局
要了解布局,请参阅https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html