gpt4 book ai didi

Java Swings 跨选项卡共享 JTextField 值

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:08:59 25 4
gpt4 key购买 nike

我正在尝试跨选项卡共享 JTextField 值。

我在选项卡式 Pane 中添加了 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 值被添加到 map 中,稍后用于从数据库中获取数据。这发生在选项卡 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)。

提前致谢,如果我没有清楚地说明问题或者问题不是有效的,我深表歉意。

最佳答案

When I enter some value in Text Feild in Tab1 and click on Tab3 I should be able to pass that Text Feild to Tab3.

您不能传递组件,因为一个组件只能属于一个容器。但是您可以共享模型:

JTextField tab1TextField = new JTextField(...);
JTextField tab2TextField = new JTextField(...);
tab2TextField.setDocume( tab1TextField.getDocument() );

现在,当您在任一文本字段中输入文本时,另一个文本字段会自动更新,因为它们共享同一个文档。

关于Java Swings 跨选项卡共享 JTextField 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16793700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com