Я не понимаю, почему мой JPanel не появится, так как я использовал pack() и setVisible (true) Он просто запускает приложение и ничего не происходит. Это мой кодМоя JPanel не появится (Java)
import java.io.*;
import java.net.*;
import java.util.Scanner;
import java.util.concurrent.TimeUnit;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import javax.swing.JFrame;
public class TestGUI extends JFrame {
private JPanel _panel1 = new JPanel();
private JTextArea _txtarea = new JTextArea(10, 10);
private JTextField _txtfield = new JTextField();
public TestGUI() {
add(_panel1);
_panel1.setLayout(new BorderLayout());
_panel1.add(_txtarea);
_panel1.add(_txtfield);
validate();
_panel1.setVisible(true);
_panel1.setSize(500, 500);
}
public static void main(String[] args) {
new TestGUI();
}
}
setVisible() и setSize() относятся к кадру, а не к панели. Назовите их «этим». или ничего. Кроме того, поскольку вы устанавливаете макет панели на BorderLayout, добавление двух вещей к нему просто перезаписывает первое, второе. Если вы хотите, чтобы они были в разных местах, вам нужно указать NORTH, EAST или что-то еще - посмотрите, как использовать BorderLayout для деталей. – arcy
Вы должны обработать событие 'windowClosing'. Вы не сможете закрыть окно, если вы этого не сделаете. Поэтому, если вы не идете в незадекларированное окно и не выполняете пользовательскую кнопку закрытия, важно, чтобы событие 'windowClosing' было важно. –
Коррекция: окно закроется, но программа youre будет работать после закрытия окна. –