所以我有一個帶有 JMenuItems 的視窗類,它假設在點擊時打開新視窗,但這些視窗來自其他類,所以我必須為它們創建一個物件,當我只讓一個 JMenuItem 執行一個操作時它起作用了,但是當我添加了更多它表明不正確幫助我解決這里是 JMenuItems:
JMenuItem managestudent = new JMenuItem ("manage student");
menu.add(managestudent);
JMenuItem mangecourse = new JMenuItem ("manage course");
menu.add(mangecourse);
這是我讓它執行的方式,但它沒有
class exitaction implements ActionListener{
@Override
public void actionPerformed (ActionEvent e){
System.exit(0);
exit.addActionListener(new exitaction ());
}
class open implements ActionListener{
@Override
public void actionPerformed (ActionEvent e){
ManageStudent n= new ManageStudent();
managestudent.addActionListener(new open());
}
class open2 implements ActionListener{
@Override
public void actionPerformed (ActionEvent e){
ManageCourse m = new ManageCourse();
mangecourse.addActionListener(new open2());
}
ManageStudent 和 mangecourse 來自不同的班級
uj5u.com熱心網友回復:
要使選單項在ActionListener單擊時呼叫您的s,您必須將ActionListener加到選單項中。您似乎沒有這樣做,因此ActionListener永遠不會呼叫 s。
這是正確的代碼。首先將動作偵聽器添加到選單項:
JMenuItem managestudent = new JMenuItem ("manage student");
menu.add(managestudent);
managestudent.addActionListener(new open());
JMenuItem mangecourse = new JMenuItem ("manage course");
menu.add(mangecourse);
mangecourse.addActionListener(new open2());
然后,在您的ActionListener物件中,按如下方式更改代碼:
class exitaction implements ActionListener{
@Override
public void actionPerformed (ActionEvent e){
// code to execute when exit menu item is clicked
System.exit(0);
}
class open implements ActionListener{
@Override
public void actionPerformed (ActionEvent e){
// code to execute when manage student menu item is clicked
ManageStudent n= new ManageStudent();
}
class open2 implements ActionListener{
@Override
public void actionPerformed (ActionEvent e){
// code to execute when manage course menu item is clicked
ManageCourse m = new ManageCourse();
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/380766.html
標籤:爪哇
