Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 与JPanel连接的JButtons[…]_Java_Swing_Jpanel - Fatal编程技术网

Java 与JPanel连接的JButtons[…]

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

我有个问题,我无法解决。。。 如果你能看看这个,我将不胜感激

问题是,按下按钮后,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);
    }
}
如您所见,我添加了布尔类型的条件,但它不能正常工作。 它还将在调用例如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);
    }
}