我在java中有两个类:GLA14.java和NewFrame2.java。 NewFrame2.java有一个" SUBMIT"按钮。我想在GLA14.java中定义它的监听器。我怎么能这样做?
答案 0 :(得分:2)
它似乎不是一个好主意,正如Aakash建议的那样,你应该创建一个ListenerClass.java并使用它GLA14.java和NewFrame2.java。 您还可以尝试在GLA14.java中编写侦听器的公共getter。
希望帮助你!
答案 1 :(得分:1)
您可以在NewFrame2
中使用一个方法,该方法将ActionListener
个对象作为参数。在NewFrame2
范围内的此方法体内,您可以将其分配给按钮:
public class NewFrame2 {
...
public void assignEventHandler(ActionListener listener) {
this.button.addActionListener(listener);
}
...
}
在你的GLA14中:
...
Frame2 f2 = ...
f2.assignEventHandler(new EvtHlr());
...
其他一些类(将进行实际的事件处理):
public class EvtHlr implements ActionListener() {
...
}
话虽如此,你所尝试的是非常规的。通常做的是你有:
答案 2 :(得分:1)
您可以使用框架类
中的公共方法实现此目的-(void)back
{
if(_stateView.stateType == StateType_Failed || _stateView.stateType == StateType_WiFi)
{
UIAlertView *alertView = [[UIAlertView alloc]initWithTitle:@"温馨提示" message:[NSString stringWithFormat:@"您确认要放弃连接 %@ 免费热点",_SSID] delegate:self cancelButtonTitle:@"确定" otherButtonTitles:@"不,谢谢", nil];
[alertView show];
return;
}
}
-(void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
if(buttonIndex == 0)
{
[self.navigationController popViewControllerAnimated:YES];
}
}
}
并有一个单独的动作侦听器类,如下所示
public class NewFrame extends JFrame {
private JButton button;
public Solution() {
button= new JButton("Test");
Container contentPane = getContentPane();
contentPane.add(button);
}
public void associateListener(ActionListener o) {
button.addActionListener((ActionListener) o);
}
}
将这两个与您的GLA14课程相关联,如下所示
public class MyActionListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.out.println("Working Action Listener");
}
}
答案 3 :(得分:1)
这是一个令人担忧的例子。实例化有点糟糕,但你应该明白这一点。
GLA14.java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class GLA14 implements ActionListener
{
public static void main (String[] args)
{
new GLA14();
}
public GLA14()
{
new NewFrame2(this);
}
@Override
public void actionPerformed(ActionEvent arg0)
{
System.out.println("Action Performed");
}
}
NewFrame2.java:
import javax.swing.JButton;
import javax.swing.JFrame;
public class NewFrame2
{
public NewFrame2(GLA14 gla14)
{
JFrame frame = new JFrame();
JButton submit = new JButton();
frame.setBounds(10,10,200,100);
frame.add(submit);
submit.setText("Submit");
submit.addActionListener(gla14);
frame.setVisible(true);
}
}
请注意,GLA14的实例作为参数传递给NewFrame2的构造函数。然后,您可以将该实例指定为按钮的ActionListener。
答案 4 :(得分:1)
我简单地在GLA14.java和在的actionPerformed()中定义的函数计算()“提交”按钮,我创建GLA14.java类的一个对象,并称为计算()。 谢谢大家的帮助。
答案 5 :(得分:0)
您可以在GLA14中继承或实现侦听器,并使用按钮的setOnClickListener(new GLA14());
方法来使用它。