我正在尝试创建一个框架,顶部有一个图形面板(通过布局),同一框架下面有一个按钮/标签面板。到目前为止,我似乎已经能够将它们都放在同一个框架上,但与按钮/标签面板相比,图形面板非常小......我不能发布照片,但它几乎就像尺寸一样(400,10) )用于图形面板,(400,290)用于按钮/标签面板。
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Point;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class DoNotEnterSign extends JPanel {
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawOval(0,0,50,50);
}}
public static void main(String args[])
{
JFrame frame2 = new JFrame();
JPanel panel = new DoNotEnterSign();
panel.setBackground(Color.GRAY);
panel.setSize(100,100);
JPanel panel2 = new JPanel();
JButton test = new JButton("Testing");
panel2.add(test);
frame2.getContentPane().add(panel, BorderLayout.NORTH);
frame2.getContentPane().add(panel2, BorderLayout.SOUTH);
frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame2.setSize(400,300);
frame2.setLocationRelativeTo(null);
frame2.setVisible(true);
答案 0 :(得分:1)
只需覆盖getPreferedSize()
课程的DoNotEnterSign
方法,而不是使用setSize(100,100);
。因为根据docs,它只能在没有布局管理器的情况下工作:
设置以像素为单位测量的组件大小。两个int 参数按此顺序指定宽度和高度。使用这些方法 在不使用布局管理器时调整组件大小。
在DoNotEnterSign
旁边添加
@Override
public Dimension getPreferredSize() {
return new Dimension(100,100);
}