Java图形,图形面板和按钮面板

时间:2013-12-03 05:36:52

标签: java swing jframe jpanel border-layout

我正在尝试创建一个框架,顶部有一个图形面板(通过布局),同一框架下面有一个按钮/标签面板。到目前为止,我似乎已经能够将它们都放在同一个框架上,但与按钮/标签面板相比,图形面板非常小......我不能发布照片,但它几乎就像尺寸一样(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);

1 个答案:

答案 0 :(得分:1)

只需覆盖getPreferedSize()课程的DoNotEnterSign方法,而不是使用setSize(100,100);。因为根据docs,它只能在没有布局管理器的情况下工作:

  

设置以像素为单位测量的组件大小。两个int   参数按此顺序指定宽度和高度。使用这些方法   在不使用布局管理器时调整组件大小。

DoNotEnterSign旁边添加

@Override
public Dimension getPreferredSize() {
    return new Dimension(100,100);
}

enter image description here