これは MVC パラダイムのクラス ビューです。クラスは 2 で構成され、 -とJDialogs
をクリックすると開きます。JMenuItem
addEvent
editEvent
public class EventView extends javax.swing.JFrame {
private javax.swing.JDialog addDialog;
private javax.swing.JDialog editDialog;
private EventModel model;
/** Constructor */
public EventView(EventModel model) {
initComponents();
this.model = model;
updateEventTable();
}
public void addEventListener(ActionListener al) {
addEventButton.addActionListener(al);
}
/* public void clearListener(ActionListener cl) {
clearEventButton.addActionListener(cl);
}*/
public void addDialog(ActionListener ae) {
addEvent.addActionListener(ae);
}
public void editDialog(ActionListener ee) {
editEvent.addActionListener(ee);
}
}
コントローラー クラスは、リスナーとのユーザー インタラクションを処理します。
public class EventController implements ActionListener {
//... The Controller needs to interact with both the Model and View.
private EventModel model;
private EventView view;
/** Constructor */
public EventController(EventModel model, EventView v){
model = new EventModel();
view = v;
//... Add listeners to the view.
view.addEventListener(new addEventListener());
//view.clearListener(new clearEventListener());
view.addDialog(new addDialogListener());
view.editDialog(new editDialogListener());
}
class addEventListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
String name = "";
String date;
String start="";
String end="";
String venue="";
String details="";
String opportunities="";
String moreOppor="";
try {
name = view.getEventName();
date = view.eventDate().toString();
start = view.startTime();
end = view.endTime();
venue = view.locationWhere();
details = view.getDetails();
opportunities = view.getOpportunities();
moreOppor = view.getMore();
model.addEvent(name,date,start,venue,details,opportunities,moreOppor,end);
view.showSuccess("Event Added!");
} catch (Exception ex) {
view.showError(ex);
}
}
}
class addDialogListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("");
}
}
class editDialogListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("");
}
}
このモジュールに関して 2 つの質問があります。
EventController
抽象的ではなく、抽象メソッド actionPerformed をオーバーライドしていないというエラーが表示されています。間違っている場合は修正してください。追加の JMenuItem が呼び出されdeleteEvent
ていますが、まだ触れていません。NetbeansIDE での作業 参考までにビュークラス
System.out.println("");
のダイアログを表示できるように行を置き換えたいのですが、コンポーネントにアクセスできません。addDialog
これを行う方法?試してみましview.
たが、許可されていませんsetVisible(true)
。