我正在尝试JTextField
跨标签共享价值。
我在选项卡式窗格中添加了 3 个面板。当我在 Tab1 的文本字段中输入一些值并单击 Tab3 时,我应该能够将该文本字段传递给 Tab3。
源代码文件的详细信息如下。
在文件 TTM.java
public class TTM extends JPanel {
private void createBBT() {
createDisplayD();
pane.setBorder(null);
pane.addTab("DisPlay", panel1);
pane.addTab("Recall", panel2);
createBen();
pane.addTab("Ben", panel3);
}
public void createDisplayD() {
panel1 = new JPanel();
panel1.setOpaque(true);
panel1.setBorder(BorderFactory.createLineBorder(new Color(240, 255, 240)));
panel1.add(new SComponent(user, region));
}
}
上面代码块最后一行调用的 SComponent.java 中的代码如下
public class SComponent extends JPanel implements PropertyChangeListener {
public SComponent(String user, String region) {
br = addTextField("br", 2, gridbag, v2,
...);
cu = addTextField("cu", 10, gridbag, v2,
...);
search = new JButton("Search");
search.setMnemonic('L');
search.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
pmSearch();
}
});
private void pmSearch() {
sParams.put(Cu_Key, cu.getText());
sParams.put(Br_Key, br.getText());
}
}
因此,在上面的代码中,我们可以看到 Cu 和 br 值被添加到映射中,然后用于从 db 中获取数据。这发生在 Tab 1 中。
但是在 Tab3 中我应该得到这些值,详细信息如下。
public class TTM extends JPanel {
private void createBen() {
panel3 = new JPanel();
panel3.setOpaque(true);
panel3.setBorder(BorderFactory.createLineBorder(new Color(240, 255, 240)));
panel3.add(new SBenComponent());
}
}
因此,在上述上下文中,如何将 SComponent.java 中的 cu 和 br 的值获取到上述代码最后一行的 TTM.java 文件或 SBenComponent() (SBenComponent.java)。
如果我没有清楚地说明这个问题或者它不是一个有效的问题,请提前致谢。