从“执行的操作”返回值,以便在其他类中使用



我有以下代码用于创建包含某些等级的下拉菜单,我需要能够获得用户从菜单中选择的任何排名,以便我可以在其他类中使用答案

package userInterface;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
@SuppressWarnings("serial")
public class gui extends JFrame implements ActionListener {
    String[] messageStrings = { "RANK 1", "RANK 2", "RANK 3" };
    JComboBox cmbMessageList = new JComboBox(messageStrings);
    JLabel user = new JLabel();
    JLabel item1;
    String user_rank;
    public static void main(String[] args) {
        gui newguiGui = new gui();
        newguiGui.setVisible(true);
    }
    public gui() {
        setLayout(new FlowLayout());
        setSize(400, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        cmbMessageList.setSelectedIndex(1);
        cmbMessageList.addActionListener(this);
        add(cmbMessageList);
        add(user);
        setLayout(new FlowLayout());
        setLayout(new FlowLayout());
        item1 = new JLabel("enter the street you are on here");
        item1.setToolTipText("In this box you enter if you are: pre flop, flop, turn or river");
        // adding items to the interface
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
        if (e.getSource() == cmbMessageList) {
            JComboBox cb = (JComboBox) e.getSource();
            String msg = (String) cb.getSelectedItem();
            switch (msg) {
            case "RANK 1":
                user_rank = "RANK 1";
                break;
            case "RANK 2":
                user_rank = "RANK 2";
                break;
            case "RANK 3":
                user_rank = "RANK 3";
                break;
            }
        }
    }
}

提前致谢

如果其他类不在同一包中,则可以公开String user_rank

public String user_rank;

然后你可以访问它 gui.user_rank .

也:

  • 请改用userRank来遵循 Java 命名约定。
  • 出于与上述相同的原因,使用 Gui 作为类名。
  • 立即e.getSource() == cmbMessageList替换为e.getSource().equals(cmbMessageList)
  • 您无需给setLayout(new FlowLayout())打电话 3 次。

另一种方法是添加一个(公共或默认访问)方法,该方法将返回user_rank并让另一个类调用该方法。在这种情况下,您可以使变量甚至private

你可以把它存储在一个变量中。并通过调用 getter 方法来使用它。

相关内容

最新更新