Java GUI 不会从输入中显示 JLabel

  • 本文关键字:显示 JLabel GUI Java java
  • 更新时间 :
  • 英文 :


我想用Java创建一个简单的二十一点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 不在面板中,因为我已将其添加到我的框架中。我错过了什么吗?

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

这是一个重言式。

对于每个数字 - 它不能同时是 1 和 2 - 因此条件(nloop != 1 || nloop != 2)总是产生 true .

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


while 循环:正如评论中所指出的,while(run2 = true){也有气味(尽管这似乎不是问题中所述的问题)。

你需要改变

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

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

想想吧。如果输入 1,则原始 if 条件将检查 1 是不等于 1 还是 1 不等于 2。1 显然是 != 2,所以执行了错误的输入代码。

相反,您希望错误的输入代码仅在输入不是 1 而不是 2 时才运行。

最新更新