import java.awt.event.*; public class Listen2 implements ActionListener { WindowView view; //?????????????????????? public void setView(WindowView view) { //?????????????? this.view = view; } public void actionPerformed(ActionEvent e) { int i=0; // for(i=0;i<s.length;i++){ for(i=0;i<10;i++){ //?????????????????????? if(e.getSource()==view.button[i]){ view.textshow.append("i-1");} else if(e.getSource()==view.button[11]){ view.textshow.append("+");} else if(e.getSource()==view.button[12]){ view.textshow.append("-");} else{ System.out.println("错误"); } } } }
时间: 2023-07-24 18:11:38 浏览: 65
这是一个实现了 ActionListener 接口的类 Listen2。它包含了一个视图对象 view,用来与 WindowView 类进行交互。
在 Listen2 类中,有一个 setView() 方法用来设置视图对象。通过调用这个方法,可以将视图对象传递给 Listen2 类,从而实现视图和监听器之间的关联。
在 actionPerformed() 方法中,通过判断事件源来执行相应的操作。这段代码中,使用了一个循环来判断事件源是哪个按钮被点击了。如果事件源是按钮数组中的第 i 个按钮,就向文本区域中追加对应的文本。当事件源是按钮数组中的第 11 个按钮时,追加 "+";当事件源是按钮数组中的第 12 个按钮时,追加 "-";否则抛出错误。
这段代码中,循环的终止条件是 i < 10,也就是只判断了按钮数组中的前 10 个按钮。如果按钮数组中还有其他按钮,可能需要根据实际情况进行修改。
如果你对这段代码还有其他问题,请随时提问!
相关问题
import java.awt.event.*; public class Listen2 implements ActionListener { WindowView view; //?????????????????????? public void setView(WindowView view) { //?????????????? this.view = view; } public void actionPerformed(ActionEvent e) { int i=0; // for(i=0;i<s.length;i++){ for(i=0;i<12;i++){ //?????????????????????? if(e.getSource()==view.button[i]){ //?????????????????????? view.textshow.append("+");} else{ System.out.println("错误"); } } } }
这是一个实现了 ActionListener 接口的类 Listen2。它包含了一个视图对象 view,用来与 WindowView 类进行交互。
在 Listen2 类中,有一个 setView() 方法用来设置视图对象。通过调用这个方法,可以将视图对象传递给 Listen2 类,从而实现视图和监听器之间的关联。
在 actionPerformed() 方法中,通过判断事件源来执行相应的操作。这段代码中,使用了一个循环来判断事件源是哪个按钮被点击了。如果事件源是按钮数组中的第 i 个按钮,就向文本区域中追加 "+";否则抛出错误。
这段代码中,循环的终止条件是 i < 12,也就是只判断了按钮数组中的前 12 个按钮。如果按钮数组中还有其他按钮,可能需要根据实际情况进行修改。
如果你对这段代码还有其他问题,请随时提问!
import java.awt.; import javax.swing.; import java.awt.event.*; public class jisuanqi{ public static void main (String args[]){ WindowView view=new WindowView(); view.setBounds(100,100,390,360); view.setTitle("简单计算器"); }} import java.awt.event.*; public class Listen2 implements ActionListener { WindowView view; //?????????????????????? public void setView(WindowView view) { //?????????????? this.view = view; } public void actionPerformed(ActionEvent e) { int i=0; // for(i=0;i<s.length;i++){ for(i=0;i<12;i++){ //?????????????????????? if(e.getSource()==view.button[i]){ //?????????????????????? view.textshow.append("+");} else{ System.out.println("错误"); } } } } import java.awt.; import javax.swing.; import java.awt.event.*; public class WindowView extends JFrame{ JTextArea textshow,a1; // JButton b1,b2,b3,b4,b5,b6,b7,b8,b9,b10,b11,b12; JButton button[]=new JButton[14];; JPanel panel; Listen2 listen; // ??????????????? public WindowView(){ textshow = new JTextArea() ; panel =new JPanel(new GridLayout(4,4)); char []a={'0','1','2','3','4','5','6','7','8','9','+','-','='}; setLayout(new GridLayout(2,1)); add(textshow); add(panel); listen=new Listen2(); listen.setView(this); String []s=new String[a.length]; for(int i=0;i<a.length;i++){ s[i]=String.valueOf(a[i]); } int i=0; for(i=0;i<s.length;i++){ button[i]=new JButton(""+s[i]); panel.add(button[i]); button[i].addActionListener(listen); } setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } } 补全代码,实现一个简单计算器
下面是补全的代码,实现了一个简单计算器:
```java
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class jisuanqi {
public static void main(String args[]) {
WindowView view = new WindowView();
view.setBounds(100, 100, 390, 360);
view.setTitle("简单计算器");
}
}
class Listen2 implements ActionListener {
WindowView view;
public void setView(WindowView view) {
this.view = view;
}
public void actionPerformed(ActionEvent e) {
int i = 0;
for (i = 0; i < 14; i++) {
if (e.getSource() == view.button[i]) {
if (i < 10) {
view.textshow.append("" + i);
} else if (i == 10) {
view.textshow.append("+");
} else if (i == 11) {
view.textshow.append("-");
} else if (i == 12) {
view.textshow.append("=");
}
}
}
}
}
class WindowView extends JFrame {
JTextArea textshow;
JButton[] button = new JButton[14];
JPanel panel;
Listen2 listen;
public WindowView() {
textshow = new JTextArea();
panel = new JPanel(new GridLayout(4, 4));
char[] a = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '-', '='};
setLayout(new GridLayout(2, 1));
add(textshow);
add(panel);
listen = new Listen2();
listen.setView(this);
String[] s = new String[a.length];
for (int i = 0; i < a.length; i++) {
s[i] = String.valueOf(a[i]);
}
for (int i = 0; i < s.length; i++) {
button[i] = new JButton("" + s[i]);
panel.add(button[i]);
button[i].addActionListener(listen);
}
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
}
```
这段代码实现了一个简单计算器的界面,其中按钮的点击事件通过ActionListener进行处理。每个按钮点击后会根据按钮的索引进行不同的操作,例如数字按钮会将相应的数字添加到文本显示区域,加减等号按钮则会添加相应的符号。
阅读全文