Java 看不到JPanel
我想知道为什么我不能在我的控制面板上看到topPanel 这是我的密码:Java 看不到JPanel,java,swing,jpanel,Java,Swing,Jpanel,我想知道为什么我不能在我的控制面板上看到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.JTe
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,而不是其大小 topPanel.setPreferredSize新尺寸75300 但我的建议是避免这样设置大小,而是让TextArea通过如下方式指定其行数和列数来确定大小:
topPanel.setLayout(borderLayout);
topPanel.setBackground(Color.BLUE);
textArea = new JTextArea(10, 15);
我错了,我认为topLabel也是一个面板。Comment deleted.frame.pack?如果分析调试输出中的Swing布局信息,这总是一个很好的信息。因此,在java控制台中按[Ctrl]+[Shift]+[F1],您将获得布局输出。有关此调试提示和其他调试提示,请参阅另一种调试方法,以便为面板设置一些花哨的颜色。颜色允许您查看显示的面板和缺少的面板。谢谢您的回答。我仍然有点困惑,在我看来,文本区域始终是topPanel的整个大小。这是因为我在使用flowlayout吗?是的。如果您将BorderLayout设置为controlPanel,它将占用整个controlPanel。@isaace:您将需要阅读布局管理器教程,您可以在此处找到这些教程和其他Swing资源的链接:。