Java JComboBox首次运行后未显示下拉箭头

Java JComboBox首次运行后未显示下拉箭头,java,swing,jcombobox,Java,Swing,Jcombobox,我在google上尝试了很多寻找帮助,但是我找不到任何与我的问题相关的东西。我面临着一个严重的问题。我在java程序中使用了一个JComboBox,它只在我第一次运行程序时才显示,但在第一次运行程序后,它没有显示下拉箭头。我没有使用任何removeAll();或任何形式的删除();方法。 任何帮助都将不胜感激,因为我已经看到很多人正遭受着同样的问题{ JFrame框架; JLabel选择; JComboBox子系统; 字体f1; JTextField nameText; 按回车键 public

我在google上尝试了很多寻找帮助,但是我找不到任何与我的问题相关的东西。我面临着一个严重的问题。我在java程序中使用了一个JComboBox,它只在我第一次运行程序时才显示,但在第一次运行程序后,它没有显示下拉箭头。我没有使用任何removeAll();或任何形式的删除();方法。 任何帮助都将不胜感激,因为我已经看到很多人正遭受着同样的问题{ JFrame框架; JLabel选择; JComboBox子系统; 字体f1; JTextField nameText; 按回车键

public GPACalculator() {
    frame = new JFrame("GPA Calculator---COMSATS Institute of Information Technology");
    frame.setSize(720, 640);
    frame.setLocationRelativeTo(null);
    frame.setResizable(false);
    frame.setVisible(true);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    ImageIcon head = new ImageIcon("images/Header.jpg");
    JLabel header = new JLabel(head);
    header.setSize(720,90);
    header.setLocation(0, 0);

    ImageIcon log = new ImageIcon("images/Logo.png");
    JLabel logo = new JLabel(log);
    logo.setSize(300,300);
    logo.setLocation(480, 400);

    selection = new JLabel("Select Number Of Subjects And Press Enter");
    f1 = new Font("Gabriola",Font.BOLD,30);
    selection.setFont(f1);
    selection.setLocation(10, 150);
    selection.setSize(800, 50);

    String[] subject = {"1","2","3","4","5"};
    sub = new JComboBox<String>(subject);
    sub.setBounds(10, 200, 300, 50);

    Container c = frame.getContentPane();
    c.setLayout(null);
    c.setBackground(new Color(176,196,222));
    c.add(header,BorderLayout.CENTER);
    c.add(logo);
    c.add(selection);
    c.add(sub);
}

public static void main(String[] args){
    new GPACalculator();
}
public-GPACalculator(){
frame=新JFrame(“GPA计算器——通信卫星信息技术研究所”);
帧设置大小(720640);
frame.setLocationRelativeTo(空);
frame.setresizeable(false);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ImageIcon head=新的ImageIcon(“images/Header.jpg”);
JLabel头=新的JLabel(头);
收割台.设置尺寸(720,90);
header.setLocation(0,0);
ImageIcon log=新的ImageIcon(“images/Logo.png”);
JLabel徽标=新的JLabel(日志);
logo.setSize(300300);
logo.setLocation(480400);
选择=新建JLabel(“选择受试者数量并按Enter键”);
f1=新字体(“Gabriola”,字体粗体,30);
selection.setFont(f1);
选择。设置位置(10150);
选择。设置大小(800,50);
字符串[]主题={“1”、“2”、“3”、“4”、“5”};
sub=新JComboBox(主题);
次级立根(10、200、300、50);
容器c=frame.getContentPane();
c、 setLayout(空);
c、 挫折背景(新颜色(176196222));
c、 添加(标题、边框布局、中心);
c、 添加(徽标);
c、 添加(选择);
c、 添加(子项);
}
公共静态void main(字符串[]args){
新的GPACalculator();
}
} `这是你的问题:

c.setLayout(null);

避免使用空布局,而是使用适当的布局管理器,您的代码可能会运行良好。

如何使用适当的布局管理器,因为我是java新手。@ChaudaryUsman,请参阅本教程:。非常感谢。这是我在任何在线论坛上提出的第一个问题,这段经历让我感到非常惊讶:-D@LuxxMiner使用FlowLayout()第一次工作,但在第一次运行后,又出现了同样的问题。@ChaudaryUsman尝试调用
frame.setVisible(true)添加所有组件后(即仅在构造函数末尾)