所以我已经失去了一些时间,我似乎无法找到解决方案。
基本上我有一个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的例子。
答案 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教程中的部分,了解布局管理的工作原理。