我有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();
}
}
答案 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();
}
}