gpt4 book ai didi

java - 从另一个类访问组件

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:30:27 27 4
gpt4 key购买 nike

我是 java 的新手。

我有一个正在创建 gui 的类和另一个类(主类),我正在访问 gui 类。在 gui 类中,我正在创建一些组件并返回它们。

图形用户界面类,

        public class Gui {

public Component getTopPanelContent(){
Jpanel jp = new Jpanel();
JComboBox cbo1 = new JComboBox();
JComboBox cbo2 = new JComboBox();
JComboBox cbo3 = new JComboBox();
JComboBox cbo4 = new JComboBox();
JComboBox cbo5 = new JComboBox();
JButton button = new JButton();

jp.add(cbo1);
jp.add(cbo2);
jp.add(cbo3);
jp.add(cbo4);
jp.add(cbo5);
jp.add(button);
return jp;
}
}

主类,

        public void addComponents(int id){
Gui g = new Gui();
Jpanel container = new Jpanel();

if(id == 1){
container.add(g.getTopPanelContent);
}
}

到目前为止它工作正常。

在主类中有一个 JTextArea,每当我打开一个文件时,我必须在 cbo1 中显示国家列表,该文件包含必须显示的国家列表,

       String[] countries = editArea.getContents().split("\n");

如何将国家/地区值传递给 cbo1

谢谢

最佳答案

嗯,我通常看到一个 GUI 类将 swing 组件作为类属性。您为您的 GUI 创建了类似“util”类的东西,因此您将不得不搜索您的 JComboBox

我建议你选择一个功能齐全的类来代表你的 GUI,比如:

import javax.swing.*;

public class Gui extends JPanel {

private JComboBox cbo1 = new JComboBox();
private JComboBox cbo2 = new JComboBox();
private JComboBox cbo3 = new JComboBox();
private JComboBox cbo4 = new JComboBox();
private JComboBox cbo5 = new JComboBox();
private JButton button = new JButton();

public Gui() {
add(cbo1);
add(cbo2);
add(cbo3);
add(cbo4);
add(cbo5);
add(button);
}
}

此外,添加 getter 和 setter ;-).

如果您想按照自己的方式编写代码,可以按索引搜索组合框:

System.out.println( jp.getComponent(0) );

或者,更好的是,您可以命名您的 JComboBox,然后按名称搜索它:

cbo1.setName("countryCombo");
jp.add(cbo1);

然后:

public Component findCbo1() {
for (Component comp : this.getComponents()) {
if(comp.getName() != null && comp.getName().equals("countryCombo")) {
return comp;
}
}
return null;
}

关于java - 从另一个类访问组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12340406/

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