有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将构造函数类与am主类相结合

有人能指导我如何将这两个类合并到一个文件中吗?一个是构造函数类,另一个是主类

谢谢,

主要类别:

public class JHelloDemo
{
   public static void main(String[] args)
   {
      JHelloFrame frame = new JHelloFrame();
      frame.setVisible(true);
   }
}

构造函数类:

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class JHelloFrame extends JFrame implements ActionListener{
   JLabel question = new JLabel("What is your name?");
   Font bigFont = new Font("Arial", Font.BOLD, 16);
   JTextField answer = new JTextField(10);
   JButton pressMe = new JButton("Press me");
   JLabel greeting = new JLabel("");
   final int WIDTH = 275;
   final int HEIGHT = 225;
   public JHelloFrame(){
      super("Hello Frame");
      setSize(WIDTH, HEIGHT);
      setLayout(new FlowLayout());
      question.setFont(bigFont);
      greeting.setFont(bigFont);
      add(question);
      add(answer);
      add(pressMe);
      add(greeting);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      pressMe.addActionListener(this);
      }
   @Override
   public void actionPerformed(ActionEvent e){
      String name = answer.getText();
      String greet = "Hello, " + name;
      greeting.setText(greet);
   }
}

共 (2) 个答案

  1. # 1 楼答案

    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class JHelloFrame extends JFrame implements ActionListener{
       JLabel question = new JLabel("What is your name?");
       Font bigFont = new Font("Arial", Font.BOLD, 16);
       JTextField answer = new JTextField(10);
       JButton pressMe = new JButton("Press me");
       JLabel greeting = new JLabel("");
       final int WIDTH = 275;
       final int HEIGHT = 225;
       public JHelloFrame(){
          super("Hello Frame");
          setSize(WIDTH, HEIGHT);
          setLayout(new FlowLayout());
          question.setFont(bigFont);
          greeting.setFont(bigFont);
          add(question);
          add(answer);
          add(pressMe);
          add(greeting);
          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          pressMe.addActionListener(this);
          }
       @Override
       public void actionPerformed(ActionEvent e){
          String name = answer.getText();
          String greet = "Hello, " + name;
          greeting.setText(greet);
       }
    
       public static void main(String[] args)
       {
          JHelloFrame frame = new JHelloFrame();
          frame.setVisible(true);
       }
    }
    

    好了

  2. # 2 楼答案

    您可以简单地将main()方法移动到JHelloFrame,这就是问题的答案。然而,您现有的设计分离了关注点,所以我将不讨论它

    顺便说一句,你应该包装框架。在Runnable中设置可见(true),并将其传递给EventQueue。调用器()。有关更多解释,请参见this question