首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >java错误求解?

java错误求解?

提问于 2020-01-03 00:32:47
回答 0关注 0查看 135

代码一直出现loginMenu cannot be resolved to a variable

package examch1;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.event.*;

import examch1.mygui.*;

public class TestFrame extends JFrame {//主框架容器

private static JDesktopPane theDesktop;

JMenuItem loginItem,exitItem,helpItem;//"登录"、"退出"和"帮助内容"菜单项

JMenuItem item[]=new JMenuItem[2];//"人事管理科目"菜单的2个菜单项

final String itemString[]={"部门管理","人员管理"};

final JPanel itemPanel[]={

new MyPanelDepartment("empsal","dep"),

new MyPanelEmp("empsal","emp"),

};

public TestFrame() {

super("人事管理系统"); //主框架标题

//1."登录"菜单:有两个菜单项--"登录"和"退出"

setTitle("登录窗口"); //设置标题

setLayout(null); //设置绝对布局

Container c = getContentPane(); //定义一个容器

final JTextField jtf1 = new JTextField(); //用户名文本框

final JPasswordField jpf1 = new JPasswordField(); //密码文本框

JLabel jl1 = new JLabel("用户名:"); //“用户名”标签

JLabel jl2 = new JLabel("密码:"); //“密码:”标签

jpf1.setEchoChar('*'); //设置密码字符为*

JButton jb1 = new JButton("确定"); //“确定”按钮

JButton jb2 = new JButton("取消"); //“取消”按钮

jb1.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

String name = jtf1.getText().trim();

String psw = new String(jpf1.getPassword());

if (jtf1.getText().trim().length() == 0 || new String(jpf1.getPassword()).trim().length() == 0) {

JOptionPane.showMessageDialog(null, "不能为空!");

}

else

JOptionPane.showMessageDialog(null, "用户名:" + name + "\n密码:" + psw);

}

});

jb2.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

int i = JOptionPane.showConfirmDialog(null, "你确定要退出本系统吗?");

if (i == 0) {

System.exit(0);

}

}

});

//2."人事管理科目"菜单:库中的每个表对应一个菜单项,实现添、删、改、查;"生成报表"菜单项

JMenu adminMenu = new JMenu("人事管理科目");

for(int i=0;i<item.length;i++)

item[i]=builedAdminMenuItem(adminMenu,itemString[i],itemPanel[i]);

//3."帮助"菜单

JMenu helpMenu = new JMenu("帮助");

JMenuItem helpItem = new JMenuItem("帮助内容");

helpMenu.add(helpItem);

helpItem.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

JOptionPane.showMessageDialog(TestFrame.this, "运行程序后,看相应的代码");

}

});

//4.创建菜单条,添加菜单

JMenuBar bar = new JMenuBar();

setJMenuBar(bar);

bar.add(loginMenu);

bar.add(adminMenu);

bar.add(helpMenu);

//5.窗口中间放置桌面面板,用来显示内部窗口

theDesktop = new JDesktopPane();

getContentPane().add(theDesktop,BorderLayout.CENTER);

setSize(800, 600);

setVisible(true);

}

//创建菜单项的通用方法:参数menu是菜单项所添加在其上的菜单;

//参数itemName是菜单项的名字,因其在匿名内部类对象中引用,必须声明为final;

//参数panel是点击菜单项后所生成的内部窗口中的面板对象,必须声明为final。

private JMenuItem builedAdminMenuItem(JMenu menu,final String itemName,final JPanel panel){

final JMenuItem menuItem = new JMenuItem(itemName);

menu.add(menuItem);

menuItem.setEnabled(false);

menuItem.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

buildInternalFrame(panel,itemName,menuItem);//生成内部窗口

}

});

return menuItem;

}

//生成内部窗口:窗口中间放置面板对象。参数item是与内部窗口相关的菜单项。

private void buildInternalFrame(JPanel panel,String title,final JMenuItem item) {

JInternalFrame frame = new JInternalFrame(title,true,true,true,true);//内部窗口

frame.addInternalFrameListener(new InternalFrameAdapter(){//内部窗口监听:关闭后执行

public void internalFrameClosed(InternalFrameEvent e) {

item.setEnabled(true);//关闭内部窗口时,菜单项item可用。

}

});

Container container = frame.getContentPane();//内部窗口容器面板

container.add(panel, BorderLayout.CENTER);//参数面板panel放在容器中间

frame.setSize(600,480);

theDesktop.add(frame);//内部窗口添加到桌面面板才能显示

frame.setVisible(true);

item.setEnabled(false);//生成内部窗口后,与之相关的菜单项item不可用。

}

//测试TestFrame类

public static void main(String[] args) {

JFrame frame = new TestFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档