[英]Communication between two JPanels
我有这个“主”面板(让我们称之为AAA )与BorderLayout,以及两个面板( BBB和CCC ):
public class AAA extends JPanel {
BBB pnlNorth = new BBB();
CCC pnlCenter = new CCC();
public AAA(){
setLayout(new BorderLayout());
add(pnlNorth,BorderLayout.NORTH);
add(pnlCenter,BorderLayout.CENTER);
}
}
Panel CCC目前为空,带有GridLayout。
我的面板BBB看起来像这样:
public class BBB extends JPanel {
public BBB (){
JLabel labNum = new JLabel("Number of items: ");
JTextField txtNum = new JTextField();
JButton cmdOK = new JButton("OK");
txtNum.setColumns(5);
cmdOK.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
/* ???????????? */
}
});
add(labNum);
add(txtNum);
add(cmdOK);
}
}
当用户在txtNum中输入一个数字并按“OK”时,面板CCC应填充适当数量的行以进行数据输入。 每行应包含两个文本字段,两个下拉列表和一个复选框。 如果用户输入一些大数字,那么所有项目都在JScrollPane中会很好。
我的问题 :我应该如何在BBB中实现动作监听器? 我不知道用户输入的是什么号码。 因此,我不知道CCC的GridLayout中的确切行数(我只知道它应该有5列)。 我可以从BBB中的侦听器修改其布局吗? 如何从面板BBB中的监听器向面板CCC添加组件?
当然,如果你有更好的解决方案(没有两个单独的面板),请告诉我:)
我设法做到了这一点。 我只是将Center面板作为North面板构造函数中的参数传递。 它完美地运作。 谢谢大家的答案:)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.