Java 与JPanel连接的JButtons[…]
我有个问题,我无法解决。。。 如果你能看看这个,我将不胜感激 问题是,按下按钮后,JPanel中没有任何操作。 看看这个: 这是我调用按钮(铅笔、画笔等)的代码: 对象应在其中创建的类是:Java 与JPanel连接的JButtons[…],java,swing,jpanel,Java,Swing,Jpanel,我有个问题,我无法解决。。。 如果你能看看这个,我将不胜感激 问题是,按下按钮后,JPanel中没有任何操作。 看看这个: 这是我调用按钮(铅笔、画笔等)的代码: 对象应在其中创建的类是: public class Drawing extends JPanel { public static Pencil pencil; public static Lines lines; public static Paintbrush paintbrush; public
public class Drawing extends JPanel {
public static Pencil pencil;
public static Lines lines;
public static Paintbrush paintbrush;
public Drawing() {
setBackground(Color.WHITE);
pencil = new Pencil(this);
GUI.pencil_condition = true;
addMouseListener(pencil);
addMouseMotionListener(pencil);
addMouseListener(lines);
addMouseMotionListener(lines);
addMouseListener(paintbrush);
addMouseMotionListener(paintbrush);
this.repaint();
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
if(GUI.pencil_condition == true) {
GUI.lines_condition = false; GUI.paintbrush_condition = false; paintbrush = null; lines = null;
pencil.paintComponent(g);
}
if(GUI.lines_condition == true) {
System.out.println("include lines!");
GUI.pencil_condition = false; GUI.paintbrush_condition = false; paintbrush = null; pencil = null;
lines.paintComponent(g);
}
if(GUI.paintbrush_condition == true)
paintbrush.paintComponent(g);
}
}
如您所见,我添加了布尔类型的条件,但它不能正常工作。
它还将在调用例如Pencil后,从先前的“绘图”中清除JPanel
谢谢你的帮助
编辑://
我编辑了一点代码,但仍然不起作用
如何解决这个问题
编辑://有人帮助吗?:} 旁白:这个
if(GUI.pencil\u condition==true){
是不好的编码实践。只需使用if(GUI.pencil\u condition){
“谢谢你的帮助!”谢谢你的问题!等等……你的问题是什么?@andrewhompson-“问题是,按下按钮后,JPanel中没有任何动作。”-我承认这可能不清楚,但从一开始的动作片段来看,这似乎很明显。这是一个问题陈述,而不是一个问题。问题可能是“有人能帮我解决它吗?”,“为什么会发生这种情况?”,“如何解决问题?”,“这是正确的设计还是我应该以另一种方式解决它?”?从中选择一个或问自己的问题,但要问一个具体的问题。这不是火箭科学。哦,还有..为了更快地获得更好的帮助,请发布一个(最简单的完整且可验证的示例)。
public class Drawing extends JPanel {
public static Pencil pencil;
public static Lines lines;
public static Paintbrush paintbrush;
public Drawing() {
setBackground(Color.WHITE);
pencil = new Pencil(this);
GUI.pencil_condition = true;
addMouseListener(pencil);
addMouseMotionListener(pencil);
addMouseListener(lines);
addMouseMotionListener(lines);
addMouseListener(paintbrush);
addMouseMotionListener(paintbrush);
this.repaint();
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
if(GUI.pencil_condition == true) {
GUI.lines_condition = false; GUI.paintbrush_condition = false; paintbrush = null; lines = null;
pencil.paintComponent(g);
}
if(GUI.lines_condition == true) {
System.out.println("include lines!");
GUI.pencil_condition = false; GUI.paintbrush_condition = false; paintbrush = null; pencil = null;
lines.paintComponent(g);
}
if(GUI.paintbrush_condition == true)
paintbrush.paintComponent(g);
}
}