0

你好吗?,我有一个问题,我确信这真的很愚蠢,但我不知道它是什么。我正在尝试创建一个按钮,所以每次我想使用那个按钮来执行我想要的操作时,我所做的就是创建已经拥有该操作和 resourceBundle 的新按钮。

我的代码是这样的:

public class AcceptNewTaskButton extends JButton {

 private ActionManager actionManager;
 private JButton acceptNewTaskButton;

public AcceptNewTaskButton(JDialog dialog,JDateChooser dateChooser,JTextField      textField){

    super(ResourceBundle.getBundle("Language").getString("locale_button_accept"));
    actionManager = new ActionManager(dialog,dateChooser,textField);

    acceptNewTaskButton = new   JButton(actionManager.getNewTaskAction(dialog,dateChooser,textField));


}}

这段代码没有做我想要的,因为当我编码时

okbutton = new AcceptNewTaskButton(dialog,datechooser,newTaskName);

该按钮已创建,但它不执行任何操作。

但是,另一方面,当我编写此代码时

public class AcceptNewTaskButton extends JButton {

private ActionManager actionManager;
private JButton acceptNewTaskButton;

public JButton AcceptNewTaskButton(JDialog dialog,JDateChooser dateChooser,JTextField textField){


    actionManager = new ActionManager(dialog,dateChooser,textField);
    acceptNewTaskButton = new JButton(actionManager.getNewTaskAction());
    acceptNewTaskButton.setText(ResourceBundle.getBundle("Language").getString("locale_button_accept"));

    return acceptNewTaskButton;

}}

我输入这个

okButton = new AcceptNewTaskButton().AcceptNewTaskButton(dialog,dateChooser,newTaskName);  

动作完美执行。

我想知道为什么会这样,我认为这很简单,但我看不到。我想这样做是因为我想在一个名为按钮的包中拥有一个每个按钮的类,并以这种方式使我的代码更加“面向对象”

太感谢了!

pd:如果我犯了任何语法错误,请原谅,英语不是我的母语

4

1 回答 1

2

您的类已经扩展了 JButton,因此您不想创建新按钮。

我认为你应该这样做:

// acceptNewTaskButton = new   JButton(actionManager.getNewTaskAction(dialog,dateChooser,textField));
setAction(  actionManager.getNewTaskAction(dialog,dateChooser,textField) );
于 2013-02-07T04:25:16.480 回答