java 如何在Eclipse上动态更改变量名或变量类型?

nkoocmlb  于 2023-03-21  发布在  Java
关注(0)|答案(1)|浏览(144)

我不能使用eval()和window[],因为出于某种原因,它们对我不起作用。
在这里,我试图创建一个方法,使创建一个新的JButton更容易,更节省空间,因为我会做很多相同的按钮,但略有不同。我只是不知道如何改变类(类型)和类(变量名)。

public void makeButton(JButton specificButton, JFrame frame, String text, int[] border) {
        specificButton = new JButton();
        specificButton.setText(text);
        frame.add(specificButton);
        specificButton.setBounds(border[0], border[1], border[2], border[3]);
        
        
        specificButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                frame.setVisible(false);
                myClass myclass = new myClass();// Example
                myclass...
            }
        });
    }

我找不到其他可能的选择。

rryofs0p

rryofs0p1#

一种方法是将action作为Runnable传递给方法,类似于:

public JButton makeButton(JFrame frame, String text, Runnable runnable) {

    JButton button = new JButton();
    button.setText(text);

    frame.add(button);

    button.addActionListener(event -> {
      frame.setVisible(false);

      runnable.run();
    });

    return button;
}

你可以这样使用:

JButton button1 = makeButton(frame, "button 1", () -> {
    // TODO action for button 1
 });

JButton button2 = makeButton(frame, "button 2", () -> {
   // TODO action for button 2
});

相关问题