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;
}
};
는'대신'페인트 (그래픽 g)' – mKorbel
이 똑똑한 물건,'redBtn.isSelected()의'의 paintComponent (그래픽 g)을 사용합니까? SELECTED_COLOR : null;은 현실 세계에서 눈살을 찌푸리게됩니다 ... 불행히도 여전히 발생합니다. – mre
Mathew : tmp 변수가 actionPerformed 메소드의 로컬이므로 코드가 작동하지 않으므로 paintComponent 메소드에 표시되지 않습니다. tmp를 클래스의 인스턴스 필드로 만든다면, 가능하다. JComponent를 다시 칠하기 위해서'repaint()'를 호출 할 필요가 있습니다. –