如果我理解正確,請使用getters和setter。 I,E您customPanel
將有public
getButton()
方法,該方法將返回JButton
實例:
class CustomPanel extends JPanel {
JButton button=new JButton("Some button");
public JButton getMyButton() {
return button;
}
}
class Test {
CustomPanel cp=new CustomPanel();
void someMethod() {
JButton b= cp.getMyButton();
}
}
UPDATE
按照評論:
如果我有像10或20我的JPanel中的不同組件是 有一些方法可以實現它們而不必製作很多方法
上JPanel
例如直接讓getComponentCount
,比重複使用for loop
和getComponentAt(int i)
這將使你得到JPanel
訪問所有組件:
CustomPanel cp=...;//this class extends jpanel
for(int i=0;i<cp.getComponentCount();i++) {
Component c=cp.getComponentAt(i);
if(c instanceof JButton) {
//do something
}
}
更新2
什麼如果我有兩個或多個對象應該屬於同一個類 ,但作爲單獨的對象處理,我如何區分它們使用你已經爲我提供了
看看setName(String name)
和JButton
getName
這將允許您指定的實例,它可以通過getName()
可以得到一個唯一的名稱循環。或者,使用setActionCommand(String name)
和getActionCommand()
來區分按鈕與另一個我更喜歡後者。 或者你甚至可以使用他們的文本,通過getText()
不要擴展面板。只是使用一個實例。 –