【发布时间】:2011-08-24 00:17:23
【问题描述】:
我正在尝试使用JPanel 和JButton 创建一个图形界面。到目前为止,这很好,除非我创建 JButton 实例时,它们似乎在同一行内对齐。我希望每个按钮都在一行中,而不是全部在同一行中。
如何达到预期的效果?
public class Interface extends JFrame{
public Interface ()
{
//frame
super("Panel");
pack();
setSize(500,400);
setVisible(true);
//declaration container
Container c;
c=getContentPane();
c.setLayout(new BorderLayout());
//declaration des panel avec leurs caracteristiques
JPanel menu =new JPanel();
JPanel MessageList =new JPanel();
JPanel about=new JPanel();
menu.setLayout(new FlowLayout());
MessageList.setLayout(new FlowLayout());
about.setLayout(new FlowLayout());
menu.setBackground(Color.blue);
MessageList.setBackground(Color.cyan);
about.setBackground(Color.cyan);
c.add(menu,BorderLayout.WEST);
c.add(MessageList,BorderLayout.EAST);
c.add(about,BorderLayout.SOUTH);
//--------Button---------------------
JButton button1=new JButton("button1");
JButton button2=new JButton("Button2");
menu.add(button1);
menu.add(button2);
//-----------------------------
}
public static void main(String args[])
{
Interface Message=new Interface();
Message.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
【问题讨论】:
-
您可能必须使用
FlowLayout()以外的布局。查看本教程关于有效使用布局java.sun.com/developer/onlineTraining/GUI/AWTLayoutMgr/… -
或Layout Managers 上的 Swing 教程。此外,您应该在将所有组件添加到框架之后调用 pack() 和 setVisible(true)。
-
好的,您的评论对您有很大帮助,谢谢
标签: java swing layout jpanel jbutton