簡體   English   中英

從JComboBox獲取值時出錯

[英]error to get the value from 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;
            }
        });

問題是我得到一個錯誤:“從whitin內部類訪問局部變量pat_order;需要聲明為final”,當我將final放在pat_order聲明中時,出現另一個錯誤:“無法為最終變量pat_order賦值”。 抱歉,我完全是Java GUI的初學者。 提前致謝。

這是您的程序,運行良好,我不知道為什么會收到錯誤,即使您使pat_Order final(Private)之后 ,我也只是將靜態方法用於pat_Order。 為了顯示這一點,您從組合框中選擇了東西,我添加了dialogbox ,它顯示了您選擇的東西。 :)如果您對我的程序還有其他疑問,請隨時問我,導入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();
 } 

 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM