Java JComboBox无法看到

时间:2017-07-24 20:06:51

标签: java

我有JComboBox的问题,我在窗口看不到它。我不知道我做错了什么。 我在我的代码中添加了JComboBox的坐标,但在运行代码后我无法看到它。

我的代码:

import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
class klasa extends JFrame
{
    public klasa()
    {   
        super("Program to obliczania wartosci logicznych");
        setSize(300, 250);
        setVisible(true);
        JButton oblicz = new JButton("Oblicz");
        oblicz.setBounds(190, 160, 80, 40);
        add(oblicz);
        String[]opcje= {"OR","AND","XOR"};
        JComboBox<String> lista = new JComboBox<>(opcje);
        lista.setBounds(150, 150, 2, 4);
        add(lista);
        //lista.setVisible(true);
    }

    public static void main(String[] args)
    {
    klasa k1 = new klasa(); 
    }
}

2 个答案:

答案 0 :(得分:1)

首先,您不要为您的框架设置布局,默认情况下,它使用BorderLayout。所以你把两个物体放在一起。

除此之外,尝试在Event Dispatch Thread上实例化您的帧。使用您的代码库,它看起来像这样:

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class klasa extends JFrame {

    public JComboBoxExample() {
        super("Program to obliczania wartosci logicznych");

        this.setLayout(null);

        setSize(300, 250);
        setVisible(true);
        JButton oblicz = new JButton("Oblicz");
        oblicz.setBounds(190, 160, 80, 40);
        add(oblicz);
        String[]opcje= {"OR","AND","XOR"};
        JComboBox<String> lista = new JComboBox<>(opcje);
        lista.setBounds(150, 150, 20, 40);
        add(lista);
    }

    public static void main(String[] args) {

        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                new klasa();
            }

        });

    }

}

查看doc了解详情。

答案 1 :(得分:0)

将setSize和setVisible方法放在JComboBox之后。

class klasa extends JFrame
{
    public klasa()
    {   
        super("Program to obliczania wartosci logicznych");
        //setSize(300, 250); Comment this section out
        //setVisible(true); Comment this section out
        JButton oblicz = new JButton("Oblicz");
        oblicz.setBounds(190, 160, 80, 40);
        add(oblicz);
        String[]opcje= {"OR","AND","XOR"};
        JComboBox<String> lista = new JComboBox<>(opcje);
        lista.setBounds(150, 150, 2, 4);
        add(lista);
        //lista.setVisible(true);
        setSize(300, 250);
        setVisible(true);
    }

    public static void main(String[] args)
    {
        klasa k1 = new klasa(); 
    }
}