[英]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.