0

我有一个小问题。我有一些 JComboBox 到一个 JDialog 但它们不会出现......而且我可以选择它们(见图)。

替代文字 http://grab.by/3RwI

这是我的代码:

for(int i = 0; i<11; i++)
    {
        JComboBox jC = new JComboBox(posteList);
        jC.setBounds(300, posY, 100, 20);
        jC.setSelectedIndex(0);
        this.add(jC);
        posY += 30;
    }

你有解决这个问题的想法吗?谢谢 !

4

3 回答 3

2

你不应该打电话setBounds(),你需要使用布局来管理组件的位置

于 2010-04-19T17:17:00.343 回答
0

手动设置边界后调用doLayout()JComboBox 的方法。然后组合框将正确显示。例如:

JPanel panel = new JPanel();
panel.setLayout(null);

String[] items = {"hello","goodbye","etc"};
JComboBox cbox = new JComboBox(items);
panel.add(cbox);
cbox.setBounds(0, 0, 100, 20);
cbox.doLayout(); // force the JComboBox internals to use your bounds
于 2011-03-04T01:02:16.543 回答
0

我找到了解决问题的方法。如果您为 GlassPane 使用 JPanel,则在玻璃窗格上您使用的是 JInternalFrame。如果您尝试绘制 JFileChooser 或 JCombobox,有时弹出窗口不会向下滚动(我的意思是它向下滚动但在 JPanel 下滚动)。是来自 Oracle 的错误报告:当我的同事发现这个错误报告时,我的眼睛闪闪发光。所以我将 bugreport 的解决方案实现为 JFrame,然后弹出窗口工作正常。步骤如下:

  1. 首先,您需要创建一个 JFrame。
  2. 从错误报告中实施修复(黑客)。
  3. 您必须将 JPanel(GlassPane) 添加到 JFrames rootPane,例如:frame.getRootPane().setGlassPane(panel);
  4. 当你添加 JComboBox 设置这个:comboBox.setLightWeightPopupEnabled(true)

我希望这也能解决您的问题。它对我有用。

于 2012-07-26T11:32:19.413 回答