2013-05-09 122 views
2

我试图把一个JComboBox放在我的JFrame上,如果我点击显示组合的内容,但它没有显示在JFrame上。JComboBox不显示

我已经试过:.setVisible(真),.setEnabled(真),等

这里是我的代码:

public class tryCode { 
    private final JComboBox vehicleTypeBox = new JComboBox(new String[] {"HELLO WORLD", "OLA K ASE"}); 
    private JFrame frame; 

    public tryCode() { 
     frame = new JFrame(""); 
     frame.setSize(new Dimension(300, 300)); 
     frame.setLayout(null); 
     frame.setResizable(false); 
     frame.setLocationRelativeTo(null); 
     frame.setVisible(true); 

     showComboBox(); 
    } 

    public void showComboBox() { 
     vehicleTypeBox.setBounds(10,80,100,30); 
     vehicleTypeBox.setSelectedIndex(0); 
     frame.add(vehicleTypeBox); 
    } 
} 

任何解决方案是值得欢迎的!谢谢

+1

你在哪里调用了showComboBox() – Ankit 2013-05-09 05:00:19

+2

1)你永远不会将组合框添加到框架。当您解决此问题时,请确保在使框架可见之前将组合框添加到框架。 2)不要使用null布局! 3)遵循Java命名约定。类名以大写字符开头。 – camickr 2013-05-09 05:01:33

+0

对不起,缺少部分代码,在构造函数中调用:] – 2013-05-09 05:03:08

回答

2

你永远不会拨打showComboBox()任何地方。如果它应该在启动时出现,您应该在构造函数中调用它。

public tryCode() 
{ 
    frame = new JFrame(""); 
    frame.setSize(new Dimension(300, 300)); 
    frame.setLayout(new FlowLayout()); // do not use null! 
    frame.setResizable(false); 
    frame.setLocationRelativeTo(null); 
    showComboBox(); 
    frame.setVisible(true); 
} 
+0

我给你+1只是为了使用布局管理器!但是你碰到了这个问题! – MadProgrammer 2013-05-09 05:10:30

+0

是的我试过了,不显示JCOmboBox,但它显示了我单击时的项目​​。请参阅截图https://docs.google.com/file/d/0B_y8aN4-TJMvTVd3SU13Uml4dzg/edit?usp=sharing https:// docs。 google.com/file/d/0B_y8aN4-TJMvVVNONEVmSzA3MXM/edit?usp=sharing – 2013-05-09 05:11:03

+1

@MateoOlaya,屏幕截图不会告诉我们任何事情,你已经给出了答案,我怀疑你还没有按照给出的建议,我们可以'直到您发布您的SSCCE为止。 – camickr 2013-05-09 05:13:12

0

我只是测试你的代码,添加一个主要method.and它的工作。没有问题。

import java.awt.Dimension; 

import javax.swing.JComboBox; 
import javax.swing.JFrame; 

public class TryCode { 
    private final JComboBox vehicleTypeBox = new JComboBox(new String[] {"HELLO WORLD", "OLA K ASE"}); 
    private JFrame frame; 

    public TryCode() { 
     frame = new JFrame(""); 
     frame.setSize(new Dimension(300, 300)); 
     frame.setLayout(null); 
     frame.setResizable(false); 
     frame.setLocationRelativeTo(null); 
     frame.setVisible(true); 

     showComboBox(); 
    } 

    public void showComboBox() { 
     vehicleTypeBox.setBounds(10,80,100,30); 
     vehicleTypeBox.setSelectedIndex(0); 
     frame.add(vehicleTypeBox); 
    } 



    /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
    TryCode t=new TryCode(); 

    } 

}