Swing GUI にTableLayoutを使用しています。最初は、必要に応じていくつかの基本的なラベル、ボタン、およびテキスト フィールドのみを使用して、後でアクセスできるようにしました。
public Component getComponent(String componentName) {
return getComponent(componentName, this.frame.getContentPane());
}
private Component getComponent(String componentName, Component component) {
Component found = null;
if (component.getName() != null && component.getName().equals(componentName)) {
found = component;
} else {
for (Component child : ((Container) component).getComponents()) {
found = getComponent(componentName, child);
if (found != null)
break;
}
}
return found;
}
JScrollPane
残念ながら、スクロールインJTextArea
と JTableをサポートするために using を使用した後、問題が発生しました。
JTextArea ta = new JTextArea();
ta.setName("fooburg");
JScrollPane scr = new JScrollPane(ta);
frame.getContentPane().add(scr, "1, 1"); // EDIT: changed, tkx bruno
提案の後getComponent("fooburg")
、目的のコンポーネントを介してアクセスできました (上記のバージョンが最終バージョンです)。ダンとブルーノに感謝!