Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jcombobox正在列出,但无法选择linux java1.6中的项目_Java_Linux_Swing_Jcombobox_Java 6 - Fatal编程技术网

jcombobox正在列出,但无法选择linux java1.6中的项目

jcombobox正在列出,但无法选择linux java1.6中的项目,java,linux,swing,jcombobox,java-6,Java,Linux,Swing,Jcombobox,Java 6,我在LinuxJava1.6中遇到jcombobox问题。确切的问题是,当我单击组合框(向下箭头)时,组合框会列出项目,但如果选择关闭,它会最小化。i、 e我无法选择列表中的项目。同样的代码在windows(java1.5、1.6)和linux(java1.5)中工作。这个问题只存在于LinuxJava1.6中 请帮我摆脱这一切。提前谢谢 Below is the code, import java.awt.*; import java.awt.event.*; import javax.s

我在LinuxJava1.6中遇到jcombobox问题。确切的问题是,当我单击组合框(向下箭头)时,组合框会列出项目,但如果选择关闭,它会最小化。i、 e我无法选择列表中的项目。同样的代码在windows(java1.5、1.6)和linux(java1.5)中工作。这个问题只存在于LinuxJava1.6中

请帮我摆脱这一切。提前谢谢

Below is the code, 

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JComboBoxDemo extends JPanel {


    public JComboBoxDemo() {
        String[] comboTypes = { "Numbers", "Alphabets", "Symbols" };
        // Create the combo box, and set 2nd item as Default
        JComboBox comboTypesList = new JComboBox(comboTypes);
        comboTypesList.setSelectedIndex(2);
        comboTypesList.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent e) {
                JComboBox jcmbType = (JComboBox) e.getSource();
                String cmbType = (String) jcmbType.getSelectedItem();
                System.out.println(cmbType);
            }
        });
        // Set up the picture

        // Layout the demo
        setLayout(new BorderLayout());
        add(comboTypesList, BorderLayout.NORTH);

        setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
    }
    public static void main(String s[]) {
        JFrame frame = new JFrame("JComboBox Usage Demo");
        frame.addWindowListener(new WindowAdapter() {

            public void windowClosing(WindowEvent e) {
                System.exit(0);
            }
        });
        frame.setContentPane(new JComboBoxDemo());
        frame.pack();
        frame.setVisible(true);
    }
}

以下变体在Ubuntu 12、OpenJDK 6上正常工作。唯一显著的变化是从第二天开始

为什么linux中的Java1.5和Java1.6存在这种差异

JavaSwing始终需要正确的同步。迁移到后续版本有时会暴露出潜在的错误

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JComboBoxDemo extends JPanel {

    public JComboBoxDemo() {
        String[] comboTypes = {"Numbers", "Alphabets", "Symbols"};
        JComboBox comboTypesList = new JComboBox(comboTypes);
        comboTypesList.setSelectedIndex(2);
        comboTypesList.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                JComboBox jcmbType = (JComboBox) e.getSource();
                String cmbType = (String) jcmbType.getSelectedItem();
                System.out.println(cmbType);
            }
        });
        setLayout(new BorderLayout());
        add(comboTypesList, BorderLayout.NORTH);
        setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));
    }

    public static void main(String s[]) {
        EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                JFrame frame = new JFrame("JComboBox Usage Demo");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setContentPane(new JComboBoxDemo());
                frame.pack();
                frame.setVisible(true);
            }
        });
    }
}

谢谢你的帮助

经过这么多的努力,我终于找到了解决方案(即使是一个简单的解决方案)

当我调用frame.setUndecorated(true)时,问题得到了解决

在我的应用程序中,我们定制了操作系统,它不支持装饰框架


因此,当我调用此方法时,效果很好

尝试在
EventQueue.invokeLater(new Runnable(){public void run(){…})中包装
main
的内容
jlbPicture.setPreferredSize(新尺寸(177122+10))中所述请参阅(是)。您好,谢谢您的回复。我没有使用jlbPicture,甚至现在也出现了同样的问题。提示:1)添加@MadProgrammer(或任何人-the@很重要)以通知他们新的评论。2) 注意到你采纳了我的建议,仔细阅读。我没有告诉您在EDT上创建GUI的唯一原因是已经说过了。不要忽视建议。@Andrew Thompson我不明白,当我解开jcombobox(向下箭头)时,这也没有显示下拉列表。我无法使用JDK 6在Ubuntu 12或Mac OS X 10.9上重现这一点。您使用的是什么平台和版本?我使用的是Linux x86_64您可以尝试更新您的系统并编辑您的问题,以包括Linux x86_64发行版和Java开发工具包的确切名称和版本;有人可能会重现这个问题。在linux中,如果我按Ctrl+Alt+l,那么我就可以正常选择项目。我可以知道当我点击Ctrl+Alt+l时背景中到底发生了什么吗