вызов класса java из класса jframe java netbeans [duplicate]

Если вы не хотите использовать eval, вам придется использовать существующую библиотеку оценщиков выражений.

http://silentmatt.com/javascript-expression-evaluator/

http://www.codeproject.com/KB/scripting/jsexpressioneval.aspx

Вы также можете перевернуть один из своих:) [ ! d5]

3
задан John Gallagher 28 February 2014 в 14:13
поделиться

1 ответ

Ну, есть несколько способов сделать это ... Либо вы создаете анонимных слушателей для каждой кнопки, а затем, в зависимости от того, что вы хотите делать, запускаете методы в других классах и т. п .;

JButton b1 = new JButton();
b1.addActionListener(new ActionListener(){

    public void actionPerformed(ActionEvent e)
    {
        //Do something!
        OtherClass other = new OtherClass();
        other.myMethod();
    }
});

JButton b2 = new JButton();
b2.addActionListener(new ActionListener(){

    public void actionPerformed(ActionEvent e)
    {
        //Do something else!
        ...
    }
});

В качестве альтернативы вы используете командную строку и ассоциируете уникальную команду (сделанную окончательно, желательно), с которой вы сравниваете, когда вы принимаете actionPerformed в общей реализации прослушивателя;

//In your class, somewhere...
public final static String CMD_PRESSED_B1 = "CMD_PRESSED_B1";
public final static String CMD_PRESSED_B2 = "CMD_PRESSED_B2";

//Create buttons
JButton b1 = new JButton();
JButton b2 = new JButton();

//Assign listeners, in this case "this", but it could be any instance implementing ActionListener, since the CMDs above are declared public static
b1.addActionListener(this);
b2.addActionListener(this);

//Assign the unique commands...
b1.setActionCommand(CMD_PRESSED_B1);
b2.setActionCommand(CMD_PRESSED_B2);

И затем , в реализации вашего слушателя;

public void actionPerformed(ActionEvent e)
{
    if (e.getActionCommand().equals(CMD_PRESSED_B1)
    {
        //Do something!
        OtherClass other = new OtherClass();
        other.myMethod();
    }

    else if (e.getActionCommand().equals(CMD_PRESSED_B2)
    {
        //Do something else!
        ...
    }
}
4
ответ дан Markus Millfjord 17 August 2018 в 10:58
поделиться
  • 1
    Большое спасибо Маркусу, синтаксис работы просто нужно написать правильный метод – Juxhin 28 February 2014 в 14:58
  • 2
    Рад слышать. Пожалуйста, отметьте ответ как принятый, если вы чувствуете, что получили ответ, который вам нужен. – Markus Millfjord 28 February 2014 в 16:24
Другие вопросы по тегам:

Похожие вопросы: