Java GUI不会从输入中显示JLabel

时间:2012-11-26 19:27:40

标签: java

我想用Java创建一个简单的Blackjack GUI。我知道创建JLabel,JPanel等的基础知识。但是,我无法找到为什么我的JLabel没有显示在屏幕上。这是我的代码:

        //Create and set up the window.
        JFrame frame = new JFrame("BlackJack");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        //new border panel
        JPanel gui = new JPanel(new BorderLayout(2,2));

        //create players panel
        JPanel panel2 = new JPanel(new FlowLayout(FlowLayout.LEFT));
        panel2.setPreferredSize(new Dimension(600, 200));
        panel2.setBackground(Color.ORANGE);
        gui.add(panel2, BorderLayout.CENTER);


        //Display the window.
        frame.pack();
        frame.setVisible(true);
        frame.setTitle("BlackJack!");


        //add players name
        String name = JOptionPane.showInputDialog(null, "Name?");
        JLabel playerName = new JLabel(name);
        playerName.setPreferredSize(new Dimension(100, 40));
        playerName.setFont(new Font("sansserif", Font.BOLD, 18));
        panel2.add(playerName);

当我点击编译时,我得到的是名称对话框?然后是一个空面板。我不明白为什么我的JLabel不在面板中,因为我已将它添加到我的框架中。我错过了什么吗?

2 个答案:

答案 0 :(得分:4)

if(nloop != 1 || nloop != 2){

这是tautology

对于每个号码 - 它不能同时为1和2 - 因此条件(nloop != 1 || nloop != 2)始终会产生true

也许您想要&&而不是||


while循环:while(run2 = true){smells,正如评论中所指出的那样(虽然它似乎不是问题中所述的问题)。

答案 1 :(得分:0)

您需要更改

if(nloop != 1 || nloop != 2){

if(nloop != 1 && nloop != 2){

想一想。如果输入1,则原始if条件检查1是否不等于1或1不等于2. 1显然是!= 2,因此输入错误的输入代码。

相反,只有当输入不是1而不是2时,您才希望输入错误的输入代码。