我正在编写一个执行以下操作的程序: 创建一个框架并将其布局设置为FlowLayout。 *创建两个面板并将它们添加到框架中。 *每个面板包含三个按钮。该面板使用FlowLayout。这是我的代码:
import java.awt.*;
import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JPanel;
class Flow{
public static void main(String[] args){
JFrame f = new JFrame("Testing out these JPanels");
f.setSize(400, 100);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);
f.setVisible(true);
f.setLayout(new FlowLayout());
JButton b = new JButton("button 1");
JButton butt = new JButton("button 2");
JButton bug = new JButton("button 3");
JButton button = new JButton("button 4");
JButton button5 = new JButton("button 5");
JButton button6 = new JButton("button 6");
JPanel p = new JPanel();
p.setLayout(new FlowLayout());
p.setVisible(true);
p.setSize(200, 100);
JPanel pnl = new JPanel();
pnl.setLayout(new FlowLayout());
pnl.setSize(200,100);
p.add(b);
p.add(butt);
p.add(bug);
pnl.add(button5);
pnl.add(button);
pnl.add(button6);
f.add(button5);
}
}
当我运行程序时,框架显示但不显示我的按钮或面板。有人可以解释一下我做错了吗?
答案 0 :(得分:1)
您应该将JPanel
p
和pnl
添加到JFrame
// f.add(button5); Comment this line button5 is already added to pnl
// Now add the two panel with JFrame.
f.add(p);
f.add(pnl);
并且,对于正确的布局管理器,请完成此tutorial。
答案 1 :(得分:0)
您需要将JPanel添加到JFrame
f.getcontentpane().add(p);
f.getcontentpane().add(pnl);
然后在框架上调用setVisible()。
f.setVisible(true);
答案 2 :(得分:0)
它没有显示,因为您在添加按钮之前将框架的可见性设置为true
,因此它只渲染没有按钮的框架,当您重新调整JFrame的大小时,它将显示按钮,因为它再次呈现。
<强>溶液强>
在添加按钮
后设置框架的可见性 JFrame f = new JFrame("Testing out these JPanels");
f.setSize(400, 100);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);
f.setLayout(new FlowLayout());
JButton b = new JButton("button 1");
JButton butt = new JButton("button 2");
JButton bug = new JButton("button 3");
JButton button = new JButton("button 4");
JButton button5 = new JButton("button 5");
JButton button6 = new JButton("button 6");
JPanel p = new JPanel();
p.setLayout(new FlowLayout());
p.setVisible(true);
p.setSize(200, 100);
JPanel pnl = new JPanel();
pnl.setLayout(new FlowLayout());
pnl.setSize(200,100);
p.add(b);
p.add(butt);
p.add(bug);
pnl.add(button5);
pnl.add(button);
pnl.add(button6);
f.add(button5);
f.setVisible(true); //relocated here
答案 3 :(得分:0)
您已创建了面板,但忘记在该框架中添加面板,与添加“按钮5”的方式完全相同
尝试将其包含在代码中:
f.add(p);
f.add(pnl);