从Action执行返回值以在其他类中使用

时间:2014-04-03 16:15:49

标签: java swing user-interface interface

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

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;

            }
        }
    }

}

提前致谢

2 个答案:

答案 0 :(得分:0)

您可以将其存储在变量中。并通过调用getter方法来使用它。

答案 1 :(得分:0)

如果您的其他班级不在同一个套餐中,您可以将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