1.空欄に記入します
1、 GUI
2、 事件监听器
3、Swing
4、 WindowListener、windowClosing(WindowEvent e)
5、 JMenuBar、JMenu、JMenuItem
2.正誤問題
1、对 2、错 3、对 4、错 5、错
3つの複数の選択肢の質問
1、B 2、ABD 3、D 4、ABD 5、C
4つの短い答えの質問
1.(1)XxxListenerインターフェイスを実装するかXxxAdapterクラスを継承して、イベントリスナークラスを実装し、監視アクションの処理方法を書き直し
ます(2)イベントソースオブジェクトとイベントリスナーオブジェクトを作成します
(3)イベントソースのaddXxxLisntenerを呼び出します()メソッド、イベントソース
2のイベントリスナーオブジェクトの登録、Swingツールは、AWTに基づく8つのレイアウトマネージャー、つまりBorderLayout(境界レイアウトマネージャー)、BoxLayout(ボックスレイアウトマネージャー)、CardLayout(カードレイアウトマネージャー)、FlowLayout(フローレイアウトマネージャー)、GridBagLayout(グリッドパッケージレイアウトマネージャー)、GridLayout(グリッドレイアウトマネージャー)、GroupLayout(グループレイアウトマネージャー)、SpringLayout(フレキシブルレイアウトマネージャー)。
3.(1)イベントソース:イベントが発生する場所。通常、ウィンドウ、ボタン、メニューなど、イベントを生成するコンポーネント。
(2)イベントオブジェクト(イベント):GUIコンポーネントで発生する特定のイベント(通常はユーザーによる操作)をカプセル化します。
(3)リスナー:イベントソースで発生するイベントを監視し、それに応じてさまざまなイベントを処理するオブジェクト(オブジェクトにはイベントハンドラーが含まれます)。
5、プログラミングの質問
1.import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MyMouseHandler extends JFrame {
public MyMouseHandler() {
final JLabel label = new JLabel("此处显示鼠标右键点击的坐标");
label.setOpaque(true);
label.setBackground(Color.PINK);
this.add(label, BorderLayout.NORTH);
this.setSize(300, 200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON1) {
int x = e.getX();
int y = e.getY();
String banner = "鼠标当前点击位置的坐标是" + x + "," + y;
label.setText(banner);
}
}
});
this.setVisible(true);
}
public static void main(String[] args) {
new MyMouseHandler();
}
}
2.import java.awt.*;
import java.util.*;
import javax.swing.*;
import java.awt.event.*;
public class Information extends JFrame {
// 窗口NORTH部的JPanel面板
private JPanel panel = new JPanel();
// 爱好标签
private JLabel lb1 = new JLabel("兴趣");
// 三个表示爱好的JCheckBox复选框
private JCheckBox cb1 = new JCheckBox("羽毛球");
private JCheckBox cb2 = new JCheckBox("乒乓球");
private JCheckBox cb3 = new JCheckBox("唱歌");
// 性别标签
private JLabel lb2 = new JLabel("性别");
// 表示性别的JRadioButton单选框
private JRadioButton rb1 = new JRadioButton("男");
private JRadioButton rb2 = new JRadioButton("女");
// ButtonGroup添加JRadioButton,实现单选功能
private ButtonGroup bg = new ButtonGroup();
// 文本域组件
private JTextArea area = new JTextArea();
// 窗口CENTER部的JScrollPane面板,其中放置area文本域
private JScrollPane pane = new JScrollPane(area);
// Set集合存放选中的兴趣
private Set<String> hobbies = new HashSet<String>();
// gender选中的性别
private String gender = "";
// JCheckBox复选框的事件监听器
private ActionListener listener1 = new ActionListener() {
public void actionPerformed(ActionEvent e) {
JCheckBox cb = (JCheckBox) e.getSource();
// 选中的复选框把文本添加到Set集合中
if (cb.isSelected()) {
hobbies.add(cb.getText());
// 反之从集合中移除
} else {
hobbies.remove(cb.getText());
}
print();
}
};
// JRadioButton单选框的事件监听器
private ActionListener listener2 = new ActionListener() {
public void actionPerformed(ActionEvent e) {
JRadioButton jb = (JRadioButton) e.getSource();
gender = jb.getText();
print();
}
};
// 打印方法
private void print() {
// 清空文本域
area.setText("");
// 如果Set集合中有元素,打印兴趣
if (hobbies.size() > 0)
area.append("你的兴趣爱好有: ");
Iterator<String> it = hobbies.iterator();
while (it.hasNext()) {
area.append(it.next() + " ");
}
// 如果gender不为空字符串,打印性别
if (!"".equals(gender))
area.append("你的性别为: " + gender);
}
public Information() {
//添加标签、单选和复选按钮
panel.add(lb1);
panel.add(cb1);
panel.add(cb2);
panel.add(cb3);
panel.add(lb2);
panel.add(rb1);
panel.add(rb2);
bg.add(rb1);
bg.add(rb2);
// 为单选和复选按钮添加事件监听器
cb1.addActionListener(listener1);
cb2.addActionListener(listener1);
cb3.addActionListener(listener1);
rb1.addActionListener(listener2);
rb2.addActionListener(listener2);
// 将JPanel面板和JScrollPane面板添加到JFrame容器中
Container container = this.getContentPane();
container.add(panel, BorderLayout.NORTH);
container.add(pane, BorderLayout.CENTER);
this.pack();
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
new Information();
}
}
6、元の質問とその分析
何もありません。