简体   繁体   English

JFrame GUI上未显示任何组件

[英]No Components are showing up on JFrame GUI

I'm fairly new to Swing and GUIs, and so far, only the window will appear, but none of the components will be visible. 我对Swing和GUI还是相当陌生,到目前为止,仅会显示该窗口,但是所有组件都不可见。 What can I do about this? 我该怎么办? Is there something wrong with the visibility or is it with a container? 可见性是否有问题或容器是否有问题?

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

public class PhoneCaller 
{
  JButton button1;
  JButton button2;
  JButton button3;
  JButton button4;
  JButton button5;
  JButton button6;
  JButton button7;
  JButton button8;
  JButton button9;
  JButton buttonDash;
  JButton button0;
  JButton dialButton;

  String phoneNum = "";

  public static void main (String[] args)
   {
    new PhoneCaller();
    }

  public PhoneCaller()
  {
    JFrame myFrame = new JFrame();
    myFrame.setTitle("Dialer");
    myFrame.setSize(200, 250);
    myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


    JPanel myPanel = new JPanel(new BorderLayout(10,10));
    myPanel.setLayout(new BoxLayout(myPanel, BoxLayout.Y_AXIS));
    myFrame.add(myPanel);


    JPanel myPanel2 = new JPanel();
    myPanel2.setLayout(new FlowLayout());
    JLabel lab = new JLabel("Enter the number to dial");
    myPanel2.add(lab);

    JPanel myPanel3 = new JPanel();
    myPanel3.setLayout(new GridLayout(4,3,5,5));
    button1 = new JButton ("1");
    myPanel3.add(button1);
    button2 = new JButton ("2");
    myPanel3.add(button2);
    button3 = new JButton ("3");
    myPanel3.add(button3);
    button4 = new JButton ("4");
    button5 = new JButton ("5");
    button6 = new JButton ("6");
    button7 = new JButton ("7");
    button8 = new JButton ("8");
    button9 = new JButton ("9");
    button0 = new JButton ("0");
    buttonDash = new JButton ("-");

    myPanel3.add(button4);
    myPanel3.add(button5);
    myPanel3.add(button6);
    myPanel3.add(button7);
    myPanel3.add(button8);
    myPanel3.add(button9);
    myPanel3.add(button0);
    myPanel3.add(buttonDash);

    myFrame.setVisible(true);
  }
}

I think you forgot to add myPanel2 and myPanel3 inside myPanel . 我想你忘了添加myPanel2myPanel3myPanel

myPanel.add(myPanel2);
myPanel.add(myPanel3);

You forgot to add myPanel2 and myPanel3 to your JFrame, add the following snippet to the end of your code 您忘记将myPanel2myPanel3添加到JFrame,将以下代码段添加到代码末尾

myFrame.add(myPanel2);
myFrame.add(myPanel3);

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM