有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java中用于按钮功能的swing操作命令

这是我第一次用java swing n co做gui编程,所以我需要一些建议。我目前正在通过在按钮上设置动作命令来为按钮添加功能。然后,我在容器上聆听以下操作:

    colorButton.setText("Select Color");
    colorButton.setFocusable(false);
    colorButton.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
    colorButton.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
    jToolBar1.add(colorButton);
    jToolBar1.add(jSeparator1);
    colorButton.setActionCommand("selectColor");
    colorButton.addActionListener(this);

然后,我使用下面的代码片段检查对哪个组件执行了操作:

else if("selectColor".equals(e.getActionCommand())) {
        Color c = JColorChooser.showDialog(this, "Select Color", Color.GREEN);
        if (selectedShape != null) {
            undoStack.add(copyOf(model.getAllShapes()));
            model.setShapeColor(selectedShape, c);  
        }
        else{
            defaultColor = c;
        }
    }

我只是想知道这是好的还是坏的做法


共 (1) 个答案

  1. # 1 楼答案

    我通常会使用匿名类,例如

    JButton button = new JButton("BUTTON");  
    
    button.addActionListener(new ActionListener() {  
      public void actionPerformed(ActionEvent event ) {  
        // do relevant stuff
      }  
    });  
    

    编辑:MadProgrammer的评论(上图)很好地总结了你的选择。对于“较长”的方法来说,这可能不是最好的方法,但对于简单的方法来说,这是很好且清晰的方法