作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我尝试绘制一些形状,我需要添加变化的颜色作为选择复选框的事件。如何编写在我选中复选框时改变颜色 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;
}
};
最佳答案
您可以向 JCheckBox 添加一个 ActionListener,它只需在绘图 JComponent 上调用 repaint()
。然后在 paintComponent 中,通过调用 isSelected()
来检查复选框的状态,并将您的 Color 基于 boolean 结果。
Color tmp = redBtn.isSelected() ? SELECTED_COLOR : null;
关于java - 如何将事件添加到复选框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10857498/
我是一名优秀的程序员,十分优秀!