代碼中 `chaxun` 按鈕未添加監聽器,`actionPerformed` 定義在框架類但未綁定。
public class RouterSimulator extends JFrame implements ActionListener {
// ... 組件聲明 ...
JTextField[] inputFields = new JTextField[4];
JTextField[] outputFields = new JTextField[2];
JButton btnQuery;
public RouterSimulator() {
// ... 佈局代碼 ...
btnQuery = new JButton("查詢");
btnQuery.addActionListener(this); // 關鍵:註冊監聽
// ... 添加到面板 ...
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnQuery) {
try {
int[] ip = new int[4];
for (int i = 0; i < 4; i++) {
ip[i] = Integer.parseInt(inputFields[i].getText().trim());
}
String result = routeLookup(ip); // 核心算法
outputFields[0].setText(result); // 顯示結果
outputFields[1].setText("匹配成功");
} catch (NumberFormatException ex) {
outputFields[0].setText("輸入格式錯誤");
}
}
}
private String routeLookup(int[] ip) {
// 實現題目路由匹配邏輯 (掩碼 AND 比較)
// 返回 "接口0" / "接口1" / "R2" / "錯誤"
return "接口0"; // 示例
}
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> new RouterSimulator().setVisible(true));
}
}