java - 从 JComboBox 获取值时出错

标签 java swing jcombobox

我创建了一个 JComboBox,我想从中获取值。这是我编写的代码:

        final JComboBox jc = new JComboBox();
        jc.addItem("ARR");
        jc.addItem("SRR");

        myPanel.add(jc, gbc);
        String pat_order;

        jc.addItemListener(new ItemListener() {
            public void itemStateChanged(ItemEvent ie) {
                String order = (String) jc.getSelectedItem();
                pat_order = order;
            }
        });

问题是我收到一个错误:“局部变量 pat_order 是从whitin内部类访问的;需要声明为final”,当我将final放在pat_order声明中时,得到另一个错误:“无法为最终变量pat_order赋值”。 抱歉,我是 Java GUI 的初学者。提前致谢。

最佳答案

这是你的程序,它工作正常,我不知道你为什么会收到错误,即使你做了 pat_Order Final(Private) ,我只是使用 pat_Order 的静态方法。为了表明您已从组合框中选择了内容,我添加了对话框,它显示了您选择的内容,,。 :) 如果您对我的计划还有任何疑问,请随时问我, 导入 java.awt.event.ItemListener;

import javax.swing.*;

import java.awt.*;
import java.awt.event.*;


public class comboBoxProblem  extends JFrame{

static JPanel myPanel  = new JPanel();
static String pat_order;
public static void main(String [] args)
    {
        new comboBoxProblem().show(); 

    }
public comboBoxProblem()
    {
        setTitle("Combo");
        setResizable(false);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        getContentPane().setLayout(new GridBagLayout());


        GridBagConstraints gbc = new GridBagConstraints();
        myPanel.setLayout(new GridBagLayout());
        myPanel.setBorder(BorderFactory.createTitledBorder("Button's"));

        final JComboBox jc = new JComboBox(); 
        jc.addItem("ARR");
        jc.addItem("SRR");

        gbc.gridx = 0;
        gbc.gridy = 1;
        jc.addItemListener(new ItemListener() 
            {
                public void itemStateChanged(ItemEvent ie)
                    {
                        String order = (String) jc.getSelectedItem();
                        pat_order = order;
                        JOptionPane.showConfirmDialog(null, pat_order, " Message Dialog Box", JOptionPane.DEFAULT_OPTION    );
                    }
            });

        myPanel.add(jc, gbc);


        gbc.gridx = 1;
        gbc.gridy = 0;

        getContentPane().add(myPanel, gbc);



pack();
 } 

 }

关于java - 从 JComboBox 获取值时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16410260/

相关文章:

java - 如何在 Firebase 中最好地存储其他数据库对象的 ID(例如 : Event with Users)

java - 如何更改 JOptionpane 中图标的位置?

java - setBackground 在 Windows 7 中不起作用

java - 设置 JCombobox 中项目的高度

Java - 如何用txt文件的某些部分填充组合框

java - 在基于时间的解决方案中,消除国际象棋中无趣/丢失线的最佳方法?

java - 通用类 - getClass().getName()

java - Fragment 中 AsyncTask 中的 ProgressDialog 崩溃

java - 添加到面板时组件未出现

java - 管理 Java 应用程序中的字符串资源 - 单例?