2014-09-02 54 views
0

我已经设计了Netbeans中的一个JFrame,如下所示的图像:JComboBox的意外行为

http://tinypic.com/r/2em2wxd/8

当我运行该程序,组合框变为全白了如下图所示的图像:

http://tinypic.com/r/2vblwuf/8

和..当我点击了“白”的空间就说明可以选择组合框内部的项目(S)..但即使选择后,它仍然是不显示相同的白色空间布局赞成perly和选定的项目。

我的代码如下:

public class LoginWindow extends javax.swing.JFrame { 

/** 
* Creates new form LoginWindow 
*/ 
public LoginWindow() { 
    initComponents(); 
    setLocationRelativeTo(null); 

    new MyWorker().execute(); 
} 
.......... 

,工人类如下:

class MyWorker extends javax.swing.SwingWorker<String, Void> { 

    protected String doInBackground() { 
     databaseCheck(); 
     return "done"; 
    } 

    protected void done() { 
     progressPanel.setVisible(false); 
     loginPasswordField.setEnabled(true); 
     locationComboBox.setEnabled(true); 
     loginButton.setEnabled(true); 
     loginPasswordField.requestFocusInWindow(); 
    } 
} 

必须指出的是,这种行为大多是经验丰富的,虽然有时它工作得很好(很少)...任何帮助将不胜感激。

+3

你可以发布[SSCCE](http://sscce.org)吗? – 2014-09-02 18:29:28

+2

SSCCE也被称为[MCVE](http://stackoverflow.com/help/mcve),它受限于最小示例(您可以提供的代码越少),但仍会重现错误,它必须是完整的代码,因此我们可以复制粘贴并在计算机上看到它,并且能够更好地帮助您。 – Frakcool 2014-09-02 18:32:12

+0

@Frakcool修复它..谢谢你的时间。 – HMH 2014-09-02 18:54:07

回答

2

我刚似乎已经固定它,而试图发布一个SSCCE ..在框架上

实际元件尺寸可见是[256,29] ..而首选大小是不同的,其似乎已经引起了问题。

locationComboBox.setPreferredSize(new java.awt.Dimension(256, 29)); 

这解决了这个问题。

+3

我建议你阅读[关于使用set vs获取最小/首选/最大大小的这个问题](http://stackoverflow.com/questions/7229226/should-i-avoid-the-use-of-setpreferredmaximumminimumsize-methods -in-java-swi/7229519#7229519)以及'setMinimumSize'和'setPreferredSize'的答案。当然,这就是为什么我们要求一个MCVE,试图解决任何事情时,如果你把它带到基础知识,然后有时你自己去找答案。在下一次考虑之前请考虑:) – Frakcool 2014-09-02 18:57:12

+0

哦,不要忘了检查你的答案是否接受(当系统允许你的时候,如果我没有错的话会在2天内)。如果你使用多个'JFrames',你还应该阅读[使用多个JFrames,好/坏实践](http://stackoverflow.com/questions/9554636/the-use-of-multiple-jframes -good-bad-practice/9554657#9554657) – Frakcool 2014-09-02 18:58:22

+0

谢谢你的链接。我肯定会对布局管理器进行更多调查,并在我的应用程序中实现它,因为我已经注意到组件在不同平台上具有大小问题。但是我想知道为什么如果GUI构建器将组件显示为I使它和应用程序运行时,它可能会导致意外的问题/自我调整大小根据默认的minimumSize/preferredSize值,我没有设置在第一个地方..哈哈!是的,我曾经使用多个JFrames,但现在我在阅读完该链接后更改了所有应用程序:P – HMH 2014-09-02 19:06:27