Java 通过ComboBox创建JLabel

Java 通过ComboBox创建JLabel,java,swing,combobox,jlabel,Java,Swing,Combobox,Jlabel,我试图做的是根据组合框中的选择创建一个JLabel,即,如果选择了“历史书”,则创建一个标签“输入期间”,如果选择了“虚构书”,则创建标签“输入流派”。问题是,无论我选择什么,标签都是不可见的,它应该放在什么地方都是空的。你知道我哪里错了吗 这是我的密码: JComboBox comboBox = new JComboBox(bookTypes); comboBox.setModel(new DefaultComboBoxModel(new String[] {"History Book

我试图做的是根据组合框中的选择创建一个JLabel,即,如果选择了“历史书”,则创建一个标签“输入期间”,如果选择了“虚构书”,则创建标签“输入流派”。问题是,无论我选择什么,标签都是不可见的,它应该放在什么地方都是空的。你知道我哪里错了吗

这是我的密码:

JComboBox comboBox = new JComboBox(bookTypes);
    comboBox.setModel(new DefaultComboBoxModel(new String[] {"History Book", "Fictional Book", "Textbook"}));
    comboBox.setToolTipText("Choose the type of book here!");
    comboBox.setBounds(196, 48, 156, 20);
    ActionListener cbActionListener = new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent e) {
            // TODO Auto-generated method stub
            String s = (String) comboBox.getSelectedItem();
            if(s.equals("History Book")){
                JLabel lblWriteThePeriod = new JLabel("Write the Period:");
                lblWriteThePeriod.setBounds(10, 317, 142, 14);
                dialog.getContentPane().add(lblWriteThePeriod);
            }else if(s.equals("Fictional Book")){
                JLabel lblWriteTheGenre = new JLabel("Write the genre:");
                lblWriteTheGenre.setBounds(10, 317, 142, 14);
                dialog.getContentPane().add(lblWriteTheGenre);
            }
        }           
    };
    comboBox.addActionListener(cbActionListener);
    dialog.getContentPane().add(comboBox);
dialog.setVisible(true);

1) Java GUI必须在不同的操作系统、屏幕大小、屏幕分辨率等上工作。因此,它们不利于像素完美布局。而是使用布局管理器,或与布局填充和边框一起使用。2) 为了更快地获得更好的帮助,请发布一个(最简单、完整、可验证的示例)或(简短、自包含、正确的示例)。。。。3) 在应用程序启动时创建标签,然后在标签显示时调用
setText(..)
。感谢您的指导!它正在工作,不客气。很高兴你把它整理好了!:)现在您可以a)删除问题或(更好)b)提供您自己的答案(作为答案-查看下面的“回答您自己的问题”按钮)。