Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何选中组合框中选定的项,并将该项用作另一个方法的参数?_Java_Swing_Methods_Parameters_Combobox - Fatal编程技术网

Java 如何选中组合框中选定的项,并将该项用作另一个方法的参数?

Java 如何选中组合框中选定的项,并将该项用作另一个方法的参数?,java,swing,methods,parameters,combobox,Java,Swing,Methods,Parameters,Combobox,我正在创建一个程序,允许用户输入数据,然后单击按钮查看所述数据。在第一帧中,我希望用户从组合框中选择一个项目,当他们单击按钮时,它从组合框中获取所选项目,并将其作为另一个方法的参数输入,该方法将从文件中调出数据。此方法尚未完成 我目前掌握的守则如下: import java.awt.Container; import java.awt.EventQueue; import java.awt.List; import java.awt.event.ActionEvent; import java.

我正在创建一个程序,允许用户输入数据,然后单击按钮查看所述数据。在第一帧中,我希望用户从组合框中选择一个项目,当他们单击按钮时,它从组合框中获取所选项目,并将其作为另一个方法的参数输入,该方法将从文件中调出数据。此方法尚未完成

我目前掌握的守则如下:

import java.awt.Container;
import java.awt.EventQueue;
import java.awt.List;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;

import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.SpringLayout;


public class Main implements ActionListener{

static JButton ViewData = new JButton("View Data");
static JButton AddItem = new JButton("Add Item");
String Item = null;

public static void main(String[]args){

     javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                try {
                    new Main();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        });

}

public Main()  throws IOException{

    //Populating ComboBox
    String FilePath = "C:/Users/Harry/AS Computing/CWTreasurers/src/ItemList";

    BufferedReader input = new BufferedReader(new FileReader(FilePath));
    ArrayList<String> strings = new ArrayList<String>();
    try {
      String line = null;
      while (( line = input.readLine()) != null){
        strings.add(line);
      }//End While
    }//End Try

    catch (FileNotFoundException e) {
        System.err.println("Error, file " + FilePath + " didn't exist.");
    }//End catch
    finally {
        input.close();
    }//end Finally

    String[] lineArray = strings.toArray(new String[]{});

    JComboBox ChooseItems = new JComboBox(lineArray);

    //End populating ComboBox

    JFrame frame = new JFrame("CharityWeekTreasury");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setResizable(false);
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);
    //Sets Default properties of the window

    Container ContentPane = frame.getContentPane();
    SpringLayout layout = new SpringLayout();
    ContentPane.setLayout(layout);
    //Defines the container for all objects and the layout

    ContentPane.add(ChooseItems);
    ContentPane.add(ViewData);
    ContentPane.add(AddItem);
    ViewData.addActionListener(this);
    AddItem.addActionListener(this);
    //Adds Objects to window

    layout.putConstraint(SpringLayout.WEST,ChooseItems,5,SpringLayout.WEST,ContentPane);
    layout.putConstraint(SpringLayout.NORTH,ChooseItems,5,SpringLayout.NORTH,ContentPane);

    layout.putConstraint(SpringLayout.WEST,ViewData,5,SpringLayout.EAST,ChooseItems);
    layout.putConstraint(SpringLayout.NORTH,ViewData,5,SpringLayout.NORTH,ContentPane);

    layout.putConstraint(SpringLayout.WEST,AddItem,5,SpringLayout.EAST,ViewData);
    layout.putConstraint(SpringLayout.NORTH,AddItem,5,SpringLayout.NORTH,ContentPane);

    layout.putConstraint(SpringLayout.EAST,ContentPane,5,SpringLayout.EAST,AddItem);
    layout.putConstraint(SpringLayout.SOUTH,ContentPane,5,SpringLayout.SOUTH,ChooseItems);
    //Sets Positioning of objects relative to each other


    frame.pack();
    frame.setVisible(true);
    //Makes frame visible
}//End Window


public void actionPerformed(ActionEvent e) {

    JButton b = (JButton)e.getSource();
    if(b.equals(ViewData)){
        Item = ChooseItems.getSelectedItem();
        ViewData view = new ViewData(Item);
    }else if(b.equals(AddItem)){
        new AddItem();
    }

}

}
似乎不起作用,我认为这是由于ChooseItems声明的位置,这意味着没有ChooseItems可以获取所选项目


非常感谢您的帮助。谢谢。

按一下按钮就可以得到所需的物品。这是正确实施的。您需要将项传递给适当的方法,该方法将显示数据。行ViewData view=new ViewDataItem让我感到困惑。。ViewData是代码中的一个类,否则该行甚至无法编译。您也使用ViewData作为按钮的名称,这就是为什么它令人困惑的原因。抱歉,刚刚添加了更多信息,ViewData既是类名也是按钮名。
Item = ChooseItems.getSelectedItem();