1

いくつかの図形をペイントしようとしましたが、選択したチェックボックスのイベントとして色の変化を追加する必要があります。tmpチェックボックスを選択すると色が変わる新しいメソッドを作成するにはどうすればよいですか?

JCheckBox を作成する方法:

public class Paint extends JFrame {
public Paint() {

    JCheckBox redBtn = new JCheckBox("Red");

}

}

塗りつぶされた長方形の色であるメソッド:

private class PaintSurface extends JComponent {
    public void paint(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;
        Color tmp = null;   //If no checkbox selected, no color

        for (Shape s : shapes) 
            g2.setPaint(tmp);  //Here is color of shape
            g2.fill(s);
        }
    }

編集:

これは ActionListener がどのように見えるべきか?

ActionListener actionListener = new ActionListener() {
              public void actionPerformed(ActionEvent actionEvent) {
                  JCheckBox a = (JCheckBox) actionEvent.getSource();
                 Color tmp = redBtn.isSelected() ? Color.RED : null;
              }
};
4

1 に答える 1

5

JCheckBox に ActionListener を追加しrepaint()て、描画 JComponent を単に呼び出すことができます。次に、paintComponent 内で、チェック ボックスを呼び出して状態を確認isSelected()し、ブール値の結果に基づいて Color を設定します。

Color tmp = redBtn.isSelected() ? SELECTED_COLOR : null;
于 2012-06-01T21:20:59.020 に答える