文件编译正确,但JFrame没有出现

时间:2018-01-19 14:54:45

标签: java swing jframe

我一直试图让这段代码工作,我不知道它有什么问题。我所展示的所有内容都表明要正确宣布JFrame,但我已经完成了它并且它没有出现。这是我的代码:

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

public class test extends JFrame {

  private JFrame f;
  private JPanel p;
  private JButton b1;
  private JLabel lab;

  public void test() {
    gui();
  }

  public void gui() {
    JFrame f = new JFrame("Frame");
    f.setBounds(30, 30, 700, 1000);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
    f.setFocusable(true);

    p = new JPanel();
    p.setBackground(Color.YELLOW);

    b1 = new JButton("Button");
    lab = new JLabel("Label");

    p.add(b1);
    p.add(lab);

    f.add(p, BorderLayout.SOUTH);
  }

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

我不太了解编码以便能够诊断问题,所以我来这里寻求帮助。提前谢谢!

3 个答案:

答案 0 :(得分:2)

那是因为你没有调用{line.strip().split('\t')[0]:line.split('\t')[1] for line in rdata.splitlines() if line.strip() == '\n'} 方法。虽然你的意图似乎是让这个方法成为一个构造函数:

test()

它应该是(构造函数没有返回类型):

  public void test() {
    gui();
  }

答案 1 :(得分:0)

这是一个简单的错误。 您需要该类的创建实例并调用方法gui()。 您应该将测试重命名为Test。这是最佳实践。

enter image description here

答案 2 :(得分:0)

我制作了一个测试对象,并调用了调用gui();的测试方法。

package vai;
import javax.swing.*;
import java.awt.*;

public class test extends JFrame {

    private JFrame f;
    private JPanel p;
    private JButton b1;
    private JLabel lab;

    public void test() {
      gui();
    }

    public void gui() {
        JFrame f = new JFrame("Frame");
        f.setBounds(30, 30, 700, 1000);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setVisible(true);
        f.setFocusable(true);

        p = new JPanel();
        p.setBackground(Color.YELLOW);

        b1 = new JButton("Button");
        lab = new JLabel("Label");

        p.add(b1);
        p.add(lab);

        f.add(p, BorderLayout.SOUTH);
    }

    public static void main(String[] args) {
        test t1 =  new test();
        t1.test();
    }
  }