面板不会显示文字

时间:2019-09-27 02:52:08

标签: java

我应该创建一个显示消息的窗口,但是我的消息不会显示,只是一个空窗口。

import javax.swing.*;
import java.awt.*;
public class MessageFrame extends JFrame{
    public MessageFrame(){
        setTitle("Message in a Bottle");
        setSize(500, 500);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel message = new MessagePanel();
        add(message);
        setVisible(true);
        JLabel messageLabel = new JLabel("Help me please im not having fun with this assignment.", JLabel.CENTER);
        messageLabel.setAlignmentX(0);
        messageLabel.setAlignmentY(0);
        add(messageLabel);  
    }
    public static void main(String[] args){
        new MessageFrame();
    }
}

我需要怎么做才能使其显示?

2 个答案:

答案 0 :(得分:0)

正确的方法如下:

在您的main方法中,您调用MessageFrame()的实例,其中的“框架”或您选择的任何对象名称都将其设置为setVisible(true)。

        MessageFrame frame = new MessageFrame();
        frame.setVisible(true);
        frame.setLocationRelativeTo(null);
  • 我添加了setLocationRelativeTo(null);按习惯。

现在在您的公共MessageFrame()方法中,您可以这样设置标题,大小,关闭操作和消息标签:

public MessageFrame() {

    setTitle("Message in a Bottle");
    setSize(500, 500);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JLabel messageLabel = new JLabel("Help me please im not having fun with this assignment.", JLabel.CENTER);
    messageLabel.setAlignmentX(0);
    messageLabel.setAlignmentY(0);
    add(messageLabel);
}

简而言之,在您的main方法内部,您调用其他方法的实例。

整个代码应如下所示:

public class MessageFrame extends JFrame {

public static void main(String[] args) {



        MessageFrame frame = new MessageFrame();
        frame.setVisible(true);
        frame.setLocationRelativeTo(null);



    }

}

public MessageFrame() {

    setTitle("Message in a Bottle");
    setSize(500, 500);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    JLabel messageLabel = new JLabel("Help me please im not having fun with this assignment.", JLabel.CENTER);
    messageLabel.setAlignmentX(0);
    messageLabel.setAlignmentY(0);
    add(messageLabel);
}

}

我希望这会有所帮助。

答案 1 :(得分:0)

您似乎是Swing的初学者。因此,要显示消息对话框,您可以使用开箱即用的实现:

JOptionPane.showMessageDialog(frame, "Eggs are not supposed to be green.");

您可以在How to Make Dialogs上找到更多详细信息和配置设置