如何自由增加可以绘制的窗口?

时间:2019-06-09 10:40:25

标签: java swing awt

我想自由地增加绘图窗口(Java GUI):

Image

我需要在哪里修改代码? 我想用RadioButton着色

此源代码是java SWING,AWT Paint。

public static void main(String[] args) {
    new SwingPaint().show();
}

public void show() {
// create mainframe
    JFrame frame = new JFrame("20181567_ ");
    Container content = frame.getContentPane();

// create controls to apply colors and call clear feature
    JPanel controls = new JPanel();

    clearBtn = new JButton("clear");
    clearBtn.addActionListener(actionListener);
    blackBtn = new JRadioButton("black");
    blackBtn.addActionListener(actionListener);
    greenBtn = new JRadioButton("green");
    greenBtn.addActionListener(actionListener);
    redBtn = new JRadioButton("red");
    redBtn.addActionListener(actionListener);
    magentaBtn = new JRadioButton("purple");
    magentaBtn.addActionListener(actionListener);

    blackBtn.setSelected(true);

    ButtonGroup groupRd = new ButtonGroup();

    groupRd.add(blackBtn);
    groupRd.add(greenBtn);
    groupRd.add(redBtn);
    groupRd.add(magentaBtn);
// add to panel
    controls.add(blackBtn);

    controls.add(redBtn);
    controls.add(magentaBtn);
    controls.add(greenBtn);
    controls.add(clearBtn);

// set layout on content pane
    content.setLayout(new BorderLayout());

// add to content pane
    content.add(controls, BorderLayout.NORTH);
// create draw area
    drawArea = new DrawArea();
// add to content pane
    content.add(drawArea, BorderLayout.CENTER);
// set container size
    frame.setSize(600, 600);
// can close frame
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// show the swing paint result
    frame.setVisible(true);
    frame.setResizable(true);
}

我认为是布局问题。

我无法调整“绘画”窗口的大小。

我在DrawArea()中使用了paintComponent。

在包装中。

0 个答案:

没有答案