使用函数创建多个组件并自动更改行[Java]

时间:2015-08-07 15:21:51

标签: java swing user-interface layout

所以我已经失去了一些时间,我似乎无法找到解决方案。

基本上我有一个Jframe和里面,我有一个Scrollpane和一个面板 我在一行中有1个Jlabel,1个JTextField和1个JButton。 JButton可以添加一个新的JLabel,一个新的JTextField和一个新的JButton,但我无法将它们放在下一行。

我一直在搞乱布局,但是它们都不符合我的需要,不幸的是我从未理解或了解java的GUI是如何工作的。

对于我所做的每次点击,如何在下一行添加这些组件(Jlabel,Jtextfields和Jbuttons)的最佳方法是什么?

这是我的代码:

private void BtnaddvariableActionPerformed(java.awt.event.ActionEvent evt) {                                               
        JLabel Lblvariablextra = new JLabel("Testing");
        PanelVariable.add(Lblvariablextra);
        ScrollPaneVariable.setViewportView(PanelVariable);
}   

代码只包含标签hard的例子。

1 个答案:

答案 0 :(得分:1)

创建在创建GUI时添加到滚动窗格的主面板:

Box main = Box.createVerticalBox();
scrollPane.setViewportView( main );

然后在ActionListener中,每次按下按钮时都会创建一个包含3个组件的子面板:

JPanel child = new JPanel();
child.add( new JLabel("I'm a label") );
child.add( new JTextField(10) );
child.add( new JButton("Click Me") );
main.add(child);

阅读Layout Manager上Swing教程中的部分,了解布局管理的工作原理。