0

我创建了一个扩展 JPanel 的对象,并从 (0,0) 开始绘制一个短动画)。它本身就很好用,但我想在它上面添加一个按钮来处理动画的小动作。

所以在我的主要课程中,我做了以下事情:

JFrame f = new JFrame("Test");
JButton testButton = new Button("BUTTON");
MyAnimationDrawer drawing1 = new MyAnimationDrawer();

我想做的事:

在此处输入图像描述

如何将按钮和我的对象添加到 JFrame 以使左上角充当 (0,0)?完全如我的图片链接所示。

4

2 回答 2

3

通过使用BorderLayout

添加drawing panel上。CENTER_ JFrame就像是:

frame.add(drawingPanel, BorderLayout.CENTER);

添加buttonupper panel然后添加:upper panel_NORTHJFrame

upperPanel.add(button);
frame.add(upperPanel, BorderLayout.NORTH);
于 2013-09-01T21:47:05.857 回答
0

正如 brano88 所说,实现这一目标的最简单方法是使用BorderLayout。以下是您希望使用此布局的简短示例。与BorderLayoutJFrame 的默认布局管理器一样,您无需显式设置它,只需使用开箱即用的字段即可。

public class MyPanel extends JPanel {

    @Override
    public void paintComponent(Graphics g)   {
        super.paintComponent(g);

        Graphics2D g2d = (Graphics2D) g;
        g2d.setColor(Color.RED);
        g2d.fillRect(0, 0, getWidth(), getHeight());
    }


    public static void main(String[] args){
        JFrame frame = new JFrame("My frame");
        frame.setSize(800,600);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setLocationRelativeTo(null);

        //Button Panel
        JPanel buttonPanel = new JPanel();
        buttonPanel.add(new JButton("Click me!"));

        //Drawing panel
        MyPanel panel = new MyPanel();
        frame.add(panel, BorderLayout.CENTER);
        frame.add(buttonPanel, BorderLayout.NORTH);

        frame.setVisible(true);
    }
}
于 2013-09-01T21:56:31.423 回答