java - 看不到 JPanel

标签 java swing jpanel

我想知道为什么我在 controlPanel 中看不到 topPanel

这是我的代码:

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextArea;

public class GUI {

private JFrame frame;
private JTextArea textArea;
private JPanel topPanel;
private JPanel controlPanel;
private JLabel topLabel;

void createScreen() {

    frame = new JFrame("Hello");
    frame.setSize(600,600);
    frame.setLayout(new GridLayout(3,1)); 
    controlPanel = new JPanel();
    controlPanel.setLayout(new FlowLayout());
    controlPanel.setBackground(Color.GREEN);
    topLabel = new JLabel("WELCOME TO MY TRAINING", JLabel.CENTER);

    frame.add(topLabel);
    frame.add(controlPanel);

    topPanel = new JPanel();

    BorderLayout borderLayout = new BorderLayout();

    borderLayout.setHgap(10);
    borderLayout.setVgap(10);

    topPanel.setLayout(borderLayout);
    topPanel.setBackground(Color.BLUE);
    topPanel.setSize(75,300);
    textArea = new JTextArea();
    textArea.setSize(25, 25);

    topPanel.add(textArea, BorderLayout.CENTER);

    controlPanel.add(topPanel);

    frame.setVisible(true);

}

public static void main(String[] args) {
     GUI gui = new GUI();
     gui.createScreen();
}

}

最佳答案

FlowLayout 使用组件的首选大小,而不是为其设置的实际大小。 要解决您的问题,请将首选大小设置为 topPanel 而不是其 size

topPanel.setPreferredSize( new Dimension(75,300) );

但我的建议是避免像这样设置大小,而是让 TextArea 通过指定其行数和列数来确定大小,如下所示:

topPanel.setLayout(borderLayout);
topPanel.setBackground(Color.BLUE);
textArea = new JTextArea(10, 15);

关于java - 看不到 JPanel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47983919/

相关文章:

java - Java 上的复选框始终位于顶部

java - 单选按钮和字体更改

java - 使用图像图标加载 .gif

java - 将鼠标移到 Chrome 网页元素上时计时器会加快

java - 需要什么才能将 JPanel 和 JButton 转换为与 IOS 一起使用,以避免 “headless” 错误?

java - 我需要如何实现 GridBagLayout

JavaFX FXML Controller ClassNotFoundException

java - 为什么 Java 无法加载此类 : com. android.org.conscrypt.OpenSSLRSAPublicKey

java - Spring Boot 配置处理器,前缀的重复@ConfigurationProperties 定义

java - 将 JPanel 保存到 mySQL 数据库 (Java)