Панель не будет отображать текст - PullRequest
0 голосов
/ 27 сентября 2019

Я должен создать окно, которое отображает сообщение, но мое сообщение не будет отображаться, я просто получаю пустое окно.

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 голосов
/ 27 сентября 2019

Кажется, вы новичок в Swing.Таким образом, чтобы показать диалоговое окно сообщения, вы можете использовать готовую реализацию:

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

Более подробную информацию и параметры конфигурации вы можете найти в Как сделать диалоги

0 голосов
/ 27 сентября 2019

Правильный подход был бы следующим:

Внутри вашего основного метода вы вызываете экземпляр MessageFrame () где «frame» или любое имя объекта, которое вы выбираете, и устанавливаете его в 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);
}

Короче говоря, внутри вашегоОсновной метод, вы вызываете экземпляры других ваших методов.

весь код должен выглядеть примерно так:

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);
}

}

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...