Gaz*_*ler 0 java swing jtextarea
我在JTabbedPane中的(多个)JScrollPane中有一个JTextArea.
我需要访问JTextArea.如果我没有JScrollPane,我可以这样做:
JTextArea c = (JTextArea)jTabbedPane1.getComponentAt(i);
Run Code Online (Sandbox Code Playgroud)
在JScrollPane中如何获得它?
干杯,Gazler.
听起来你会在那里陷入混乱的参考(至少那是过去发生在我身上的事情).
我建议你让一个中间对象为你负责这些依赖,并在那里移动"业务"方法.
因此,您可以使用此对象,而不是添加组件并丢失引用(或者最糟糕的是,复制引用遍布整个地方):
class AppMediator {
private JTextArea area;
private JTabbetPane pane;
// etc.
public void doSomethingWithText() {
this.area.getText(); // etc
}
}
Run Code Online (Sandbox Code Playgroud)
请参阅Mediator设计模式.重点是将所有"视图"对象从它们所在的位置(通常作为子类中的引用)移动到公共中间对象.