java为什么使用CustomDialog会报错呢?

⚡️Verge⚡️ 2020-05-08 10:29:32
完全按照老师的范例打的,请问这应该怎么改正呢?

报错结果如图所示



import java.awt.*;
import java.awt.event.*;

import java.io.*;

public class CustomDialogDemo extends java.awt.Frame implements ActionListener {

String menulabel[]={"File"};

String menuitemlabel[][]={
{"New", "Open", "-", "Save", "Save As...", "-", "Exit"}
};

Menu menu[] = new Menu[1];
MenuItem menuitem[][] = new MenuItem[1][7];

// Demo only
Label label;

public static void main(String args[]){
new CustomDialogDemo();
}

// 建構函式
public CustomDialogDemo() {
super("File Dialog Demo");

// 定義 Layout Manager 為 BorderLayout
setLayout(new BorderLayout());

// Demo only
label = new Label();
add(label, BorderLayout.SOUTH);

// 建立選單列
MenuBar menuBar = createMenuBar();

// 定義視窗使用者介面之選單列
setMenuBar(menuBar);

// 設定視窗的大小
this.setSize(250, 250);

// Center the frame
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = this.getSize();

if (frameSize.height > screenSize.height)
frameSize.height = screenSize.height;

if (frameSize.width > screenSize.width)
frameSize.width = screenSize.width;

this.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);

// 顯示視窗
this.setVisible(true);

this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}

private MenuBar createMenuBar() {
// 建立選單列
MenuBar menuBar = new MenuBar();

// 建立選單
for (int i=0; i<menulabel.length; i++){
// 建立選單
menu[i] = new Menu(menulabel[i]);
menu[i].setFont(new Font("dialog", Font.PLAIN, 11));

// 新增選單至選單列
menuBar.add(menu[i]);
}

for(int i=0; i<menulabel.length; i++){
for(int j=0; j<menuitemlabel[i].length; j++){
if (menuitemlabel[i][j].equals("-")) {
// 新增分隔線
menu[i].addSeparator();
}
else {
// 建立選單項目
menuitem[i][j] = new MenuItem(menuitemlabel[i][j]);
menuitem[i][j].setFont(new Font("dialog", Font.PLAIN, 11));

// 註冊 ActionListener
menuitem[i][j].addActionListener(this);

// 新增選單項目
menu[i].add(menuitem[i][j]);
}
}
}

return menuBar;
}

// 實作ActionListener介面之方法
public void actionPerformed(ActionEvent e) {
// 取得產生動作事件的選單項目
MenuItem menuitem = (MenuItem)e.getSource();

if (menuitem.getLabel().equals("New")) { // New
String title = menuitem.getLabel();

CustomDialog dialog = new CustomDialog(this, title, title + " Dialog Demo.", true);

boolean flag = dialog.getState();

if(flag)
label.setText("Select OK Button.");
else
label.setText("Select Cancel Button.");
}
else if(menuitem.getLabel().equals("Open")){ //open
FileDialog filedialog = new FileDialog(this,"Open File",FileDialog.LOAD);


Filter filter = new Filter("java");



filedialog.setFilenameFilter(filter);

filedialog.setVisible(true);

label.setText("File Selected: "+ filedialog.getDirectory() + filedialog.getFile());
}
else if (menuitem.getLabel().equals("Save")){ //Save
FileDialog filedialog = new FileDialog(this,"Save File",FileDialog.SAVE);


Filter filter = new Filter("java");



filedialog.setFilenameFilter(filter);

filedialog.setVisible(true);

label.setText("File Selected: "+ filedialog.getDirectory() + filedialog.getFile());
}
else if (menuitem.getLabel().equals("Save As...")){//Save As...
String title = menuitem.getLabel();

CustomDialog dialog = new CustomDialog(this, title, title + " Dialog Demo.", true);

boolean flag = dialog.getState();
if(flag)
label.setText("Select OK Button.");
else
label.setText("Select Cancel Button.");
}
else if(menuitem.getLabel().equals("Exit"))// Exit
System.exit(0);
}
}
...全文
93 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39936465 2020-05-09
  • 打赏
  • 举报
回复
引用 楼主 ⚡️Verge⚡️ 的回复:
完全按照老师的范例打的,请问这应该怎么改正呢?
推荐你用eclispe 编程免费工具,CostomDialog类可能不在同一个包下需要导入。
sunyiz 2020-05-09
  • 打赏
  • 举报
回复
你的 CustomDialog 类在哪?

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧