`
ljjclub
  • 浏览: 35183 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

swing自定义菜单面板

阅读更多
第一次接触swing。。 大家帮忙看看 面板切换监听那里怎么判断当前所在哪个面板,然后隐藏,


package frd;

import java.awt.*;
import java.awt.event.*;
import java.util.List;
import javax.swing.*;

public class FriendInfo implements ActionListener {

	private JFrame jFrame;
	private JPanel jContentPane, jContentPane1, jContentPane2, jContentPane3;
	private JLabel mainText = null;
	private JLabel lblName = null;
	private JTextField tfName = null;
	private JLabel lblSex = null;
	private JComboBox cbSex = null;
	private JLabel lblPhone = null;
	private JTextField tfPhone = null;
	private JLabel lblEmail = null;
	private JTextField tfEmail = null;
	private JLabel lblAddress = null;
	private JTextField tfAddress = null;

	JMenuBar jMenuBarOne;
	JMenu menu1, menu2, menu3;
	ButtonGroup buttonEdit;

	private JButton btnAdd = null;
	private JButton btnDel = null;
	private JButton btnModify = null;
	private JButton btnQuery = null;
	// private JButton btnUpPage = null;
	// private JButton btnDownPage = null;
	private JTable table = null;
	TableModel tm = null;
	JScrollPane jsp = null;

	private JTextField getTfName() {
		if (tfName == null) {
			tfName = new JTextField();
			tfName.setBounds(new Rectangle(89, 17, 173, 27));
		}
		return tfName;
	}

	private JComboBox getCbSex() {
		if (cbSex == null) {
			String[] str = { "请选择", "男", "女" };
			cbSex = new JComboBox(str);
			cbSex.setBounds(new Rectangle(360, 17, 229, 28));
		}
		return cbSex;
	}

	private JTextField getTfPhone() {
		if (tfPhone == null) {
			tfPhone = new JTextField();
			tfPhone.setBounds(new Rectangle(89, 61, 173, 27));
		}
		return tfPhone;
	}

	private JTextField getTfEmail() {
		if (tfEmail == null) {
			tfEmail = new JTextField();
			tfEmail.setBounds(new Rectangle(360, 61, 229, 28));
		}
		return tfEmail;
	}

	private JTextField getTfAddress() {
		if (tfAddress == null) {
			tfAddress = new JTextField();
			tfAddress.setBounds(new Rectangle(89, 105, 173, 27));
		}
		return tfAddress;
	}

	private JButton getBtnAdd() {
		if (btnAdd == null) {
			btnAdd = new JButton();
			btnAdd.setBounds(new Rectangle(46, 152, 71, 30));
			btnAdd.addActionListener(this);
			btnAdd.setText("添加");
		}
		return btnAdd;
	}

	private JButton getBtnDel() {
		if (btnDel == null) {
			btnDel = new JButton();
			btnDel.setBounds(new Rectangle(189, 152, 71, 30));
			btnDel.addActionListener(this);
			btnDel.setText("删除");
		}
		return btnDel;
	}

	private JButton getBtnModify() {
		if (btnModify == null) {
			btnModify = new JButton();
			btnModify.setBounds(new Rectangle(342, 152, 71, 30));
			btnModify.addActionListener(this);
			btnModify.setText("更新");
		}
		return btnModify;
	}

	private JButton getBtnQuery() {
		if (btnQuery == null) {
			btnQuery = new JButton();
			btnQuery.setBounds(new Rectangle(484, 152, 71, 30));
			btnQuery.addActionListener(this);
			btnQuery.setText("查找");
		}
		return btnQuery;
	}

	// 添加分页选项
	// private JButton getBtnUpPage() {
	// if (btnUpPage == null) {
	// btnUpPage = new JButton("上一页");
	// btnUpPage.addActionListener(this);
	// btnUpPage.setBounds(200, 390, 80, 30);
	// }
	// return btnUpPage;
	// }
	//
	// private JButton getBtnDownPage() {
	// if (btnDownPage == null) {
	// btnDownPage = new JButton("下一页");
	// btnDownPage.addActionListener(this);
	// btnDownPage.setBounds(300, 390, 80, 30);
	// }
	// return btnDownPage;
	// }

	public FriendInfo(final String user) {
		init();
		this.getJFrame(user, getJContentPane1()).setVisible(true);
	}

	// public static void main(String[] args) {
	// SwingUtilities.invokeLater(new Runnable() {
	// public void run() {
	// FriendInfo application = new FriendInfo();
	// application.getJFrame().setVisible(true);
	// }
	// });
	// }
	private void init() {
		if (jFrame == null) {
			jFrame = new JFrame();
			jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			jFrame.setBounds(new Rectangle(450, 250, 610, 454));
		}
	}

	JFrame getJFrame(String user, JPanel jContentPane) {
		// if (jFrame == null) {
		// jFrame = new JFrame();
		// jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		// jFrame.setBounds(new Rectangle(450, 250, 610, 454));
		jFrame.setTitle("人员信息--管理员:" + user);
		jFrame.setJMenuBar(getJMenuBar(user));
		jFrame.setContentPane(jContentPane);
		// }
		return jFrame;
	}

	private JMenuBar getJMenuBar(final String user) {
		jMenuBarOne = new JMenuBar();
		buttonEdit = new ButtonGroup();

		menu1 = new JMenu("基本信息");
		menu2 = new JMenu("其他");
		menu3 = new JMenu("关于");

		jMenuBarOne.add(menu1);
		jMenuBarOne.add(menu2);
		jMenuBarOne.add(menu3);

		menu1.addMouseListener(new MouseAdapter() {
			public void mousePressed(MouseEvent e) {
				System.out.println("点击基本信息选项卡");
				if (getJContentPane1().isVisible()) {
					getJFrame(user, getJContentPane1()).setVisible(false);
				} else if (getJContentPane2().isVisible()) {
					getJFrame(user, getJContentPane2()).setVisible(false);
				} else if (getJContentPane3().isVisible()) {
					getJFrame(user, getJContentPane3()).setVisible(false);
				}
				getJFrame(user, getJContentPane()).setVisible(true);
			}
		});
		menu2.addMouseListener(new MouseAdapter() {
			public void mousePressed(MouseEvent e) {
				System.out.println("点击其他选项卡");
				if (getJContentPane().isVisible()) {
					getJContentPane().setVisible(false);
				} else if (getJContentPane1().isVisible()) {
					getJContentPane1().setVisible(false);
				} else if (getJContentPane3().isVisible()) {
					getJContentPane3().setVisible(false);
				}
				getJFrame(user, getJContentPane2()).setVisible(true);
			}
		});
		menu3.addMouseListener(new MouseAdapter() {
			public void mousePressed(MouseEvent e) {
				System.out.println("点击关于选项卡");
				if (getJContentPane2().isVisible()) {
					getJContentPane2().setVisible(false);
				} else if (getJContentPane1().isVisible()) {
					getJContentPane1().setVisible(false);
				} else if (getJContentPane2().isVisible()) {
					getJContentPane2().setVisible(false);
				}
				getJFrame(user, getJContentPane3()).setVisible(true);
			}
		});
		return jMenuBarOne;
	}

	private JPanel getJContentPane1() {
		if (jContentPane1 == null) {
			mainText = new JLabel();
			mainText.setBounds(new Rectangle(0, 0, 200, 200));
			mainText.setText("主界面");
			jContentPane1 = new JPanel();
			jContentPane1.setLayout(null);
			jContentPane1.add(mainText, null);
		}
		return jContentPane1;
	}

	private JPanel getJContentPane2() {
		if (jContentPane2 == null) {
			mainText = new JLabel();
			mainText.setBounds(new Rectangle(0, 0, 200, 200));
			mainText.setText("其他待定界面");
			jContentPane2 = new JPanel();
			jContentPane2.setLayout(null);
			jContentPane2.add(mainText, null);
		}
		return jContentPane2;
	}

	private JPanel getJContentPane3() {
		if (jContentPane3 == null) {
			mainText = new JLabel();
			mainText.setBounds(new Rectangle(0, 0, 200, 200));
			mainText.setText("关于" + System.currentTimeMillis());
			jContentPane3 = new JPanel();
			jContentPane3.setLayout(null);
			jContentPane3.add(mainText, null);
		}
		return jContentPane3;
	}

	private JPanel getJContentPane() {
		if (jContentPane == null) {
			lblAddress = new JLabel();
			lblAddress.setBounds(new Rectangle(15, 106, 63, 27));
			lblAddress.setText("地址");
			lblEmail = new JLabel();
			lblEmail.setBounds(new Rectangle(285, 61, 63, 27));
			lblEmail.setText("邮箱");
			lblPhone = new JLabel();
			lblPhone.setBounds(new Rectangle(15, 61, 63, 27));
			lblPhone.setText("电话");
			lblSex = new JLabel();
			lblSex.setBounds(new Rectangle(285, 17, 63, 27));
			lblSex.setText("性别");
			lblName = new JLabel();
			lblName.setBounds(new Rectangle(15, 17, 63, 27));
			lblName.setText("姓名");
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(lblName, null);
			jContentPane.add(getTfName(), null);
			jContentPane.add(lblSex, null);
			jContentPane.add(getCbSex(), null);
			jContentPane.add(lblPhone, null);
			jContentPane.add(getTfPhone(), null);
			jContentPane.add(lblEmail, null);
			jContentPane.add(getTfEmail(), null);
			jContentPane.add(lblAddress, null);
			jContentPane.add(getTfAddress(), null);
			jContentPane.add(getBtnAdd(), null);
			jContentPane.add(getBtnDel(), null);
			jContentPane.add(getBtnModify(), null);
			jContentPane.add(getBtnQuery(), null);
			// jContentPane.add(getBtnUpPage(), null);
			// jContentPane.add(getBtnDownPage(), null);
		}
		return jContentPane;
	}

	@Override
	public void actionPerformed(ActionEvent e) {

		if (e.getActionCommand().equals("查找")) {
			selectAll();
		}
		// else if (e.getActionCommand().equals("下一页")) {
		// selectDownPage();
		// } else if (e.getActionCommand().equals("上一页")) {
		// selectUpPage();
		// }
		else if (e.getActionCommand().equals("添加")) {
			if (tfName.getText().equals("")
					|| cbSex.getSelectedItem().equals("请选择")
					|| tfPhone.getText().equals("")
					|| tfEmail.getText().equals("")
					|| tfAddress.getText().equals("")) {
				JOptionPane.showMessageDialog(jFrame, "请填写相关信息");
			} else {
				Friend fe = new Friend();
				fe.setName(tfName.getText());
				fe.setSex((String) cbSex.getSelectedItem());
				fe.setPhone(tfPhone.getText());
				fe.setEmail(tfEmail.getText());
				fe.setAddress(tfAddress.getText());
				boolean flag = FriendOperate.add(fe);
				if (flag) {
					JOptionPane.showMessageDialog(jFrame, "添加成功");
				} else {
					JOptionPane.showMessageDialog(jFrame, "添加失败");
				}
			}
		} else if (e.getActionCommand().equals("删除")) {
			if (!tfName.getText().equals("")) {
				String key = tfName.getText();
				boolean flag = FriendOperate.del(key);
				if (flag) {
					JOptionPane.showMessageDialog(jFrame, "删除成功");
				} else {
					JOptionPane.showMessageDialog(jFrame, "删除失败");
				}
			} else {
				JOptionPane.showMessageDialog(jFrame, "请填写姓名");
			}
		} else if (e.getActionCommand().equals("更新")) {
			if (!tfName.getText().equals("")
					&& !cbSex.getSelectedItem().equals("请选择")
					&& !tfPhone.getText().equals("")
					&& !tfEmail.getText().equals("")
					&& !tfAddress.getText().equals("")) {
				Friend frd = new Friend();
				frd.setName(tfName.getText());
				frd.setSex((String) cbSex.getSelectedItem());
				frd.setPhone(tfPhone.getText());
				frd.setEmail(tfEmail.getText());
				frd.setAddress(tfAddress.getText());
				boolean flag = FriendOperate.modify(frd);
				if (flag) {
					JOptionPane.showMessageDialog(jFrame, "更新成功");
				} else {
					JOptionPane.showMessageDialog(jFrame, "更新失败");
				}
			} else {
				JOptionPane.showMessageDialog(jFrame, "请填写相应的信息");
			}
		}
	}

	public void setValues(Object[][] obj) {
		this.tm.setDatavalues(obj);
	}

	public void selectAll() {
		List<Friend> list = FriendOperate.queryFirst();
		Object[][] datavalues = new Object[list.size()][5];
		for (int i = 0; i < list.size(); i++) {
			Friend fe = list.get(i);
			datavalues[i][0] = fe.getName();
			datavalues[i][1] = fe.getSex();
			datavalues[i][2] = fe.getPhone();
			datavalues[i][3] = fe.getEmail();
			datavalues[i][4] = fe.getAddress();
		}
		tm = new TableModel();
		this.setValues(datavalues);
		table = new JTable(tm);
		table.updateUI();
		JScrollPane jsp = new JScrollPane(table);
		jsp.setBounds(0, 200, 600, 182);
		jContentPane.add(jsp);
	}

	// public void selectDownPage() {
	// List<Friend> list = FriendOperate.downPage();
	// if (list != null) {
	// Object[][] datavalues = new Object[list.size()][5];
	// for (int i = 0; i < list.size(); i++) {
	// Friend fe = list.get(i);
	// datavalues[i][0] = fe.getName();
	// datavalues[i][1] = fe.getSex();
	// datavalues[i][2] = fe.getPhone();
	// datavalues[i][3] = fe.getEmail();
	// datavalues[i][4] = fe.getAddress();
	// }
	// this.setValues(datavalues);
	// table.updateUI();
	// } else {
	// JOptionPane.showMessageDialog(jFrame, "已经是最后一页");
	// }
	// }
	//
	// public void selectUpPage() {
	// List<Friend> list = FriendOperate.upPage();
	// if (list != null) {
	// Object[][] datavalues = new Object[list.size()][5];
	// for (int i = 0; i < list.size(); i++) {
	// Friend fe = list.get(i);
	// datavalues[i][0] = fe.getName();
	// datavalues[i][1] = fe.getSex();
	// datavalues[i][2] = fe.getPhone();
	// datavalues[i][3] = fe.getEmail();
	// datavalues[i][4] = fe.getAddress();
	// }
	// this.setValues(datavalues);
	// table.updateUI();
	// } else {
	// JOptionPane.showMessageDialog(jFrame, "已经是第一页");
	// }
	// }
}

分享到:
评论

相关推荐

    JToolBar自定义面板

    在Java Swing库中,`JToolBar`是一个非常重要的组件,用于创建工具栏,它通常包含一系列按钮和其他交互元素,提供...在实际开发中,还可以根据具体需求添加更多功能,如自定义图标、右键菜单等,以满足不同场景的需求。

    Swing插件下载,swing下载,java-swing下载,swing-plugin

    Swing提供了丰富的组件库,包括按钮、文本框、菜单、滚动面板等,允许开发者创建功能完备且具有跨平台性的应用程序。在Java中,Swing插件则通常是指支持在Web浏览器中运行Swing组件的技术,这使得基于Swing的应用...

    java swing漂亮界面 超酷 javaswing教程

    Swing组件包括按钮(JButton)、文本框(JTextField)、面板(JPanel)、滚动窗格(JScrollPane)、菜单(JMenu)以及对话框(JOptionPane)等。 在创建漂亮的Java Swing界面时,有几个关键知识点需要掌握: 1. **...

    swing开发的源代码

    Swing提供了一套丰富的组件,用于创建桌面应用程序,包括按钮、文本框、菜单、滚动面板等。Swing是完全由Java编写的,因此它具有跨平台的特性,可以在任何支持Java的系统上运行。 在Swing开发中,有几个核心概念和...

    Swing 实现的界面框架

    Swing 提供了许多基本组件,如按钮(JButton)、文本框(JTextField)、标签(JLabel)、面板(JPanel)等,这些组件可以组合起来构建复杂的用户界面。此外,Swing 还支持布局管理器(如 FlowLayout、GridLayout、...

    java swing2

    Java Swing作为一套用于构建客户端(C/S)应用程序的图形用户界面工具包,提供了丰富的组件与自定义选项,使得开发者能够创建出功能强大且外观美观的应用程序。本文将深入探讨Swing中的基本组件及其定制方法,通过...

    Swing全部组建应用实例

    1. **组件(Components)**:Swing提供了一系列组件,如按钮(JButton)、文本框(JTextField)、标签(JLabel)、面板(JPanel)、滚动面板(JScrollPane)、菜单(JMenu)、菜单项(JMenuItem)等。这些组件可以组合起来构建复杂...

    swing版按键控制台

    Swing提供了丰富的组件集合,包括按钮、文本框、菜单等,以及自定义组件的能力。 这篇名为“NULL”的博文链接(https://yuancihang.iteye.com/blog/1864849)可能详细介绍了如何使用Swing构建这样一个按键控制台。...

    JAVA_Swing小示例

    Swing提供了一套丰富的组件,用于创建桌面应用程序,包括按钮、文本框、菜单、滚动面板等。这个“JAVA_Swing小示例”很可能是为了帮助初学者理解和学习如何使用Swing来构建GUI应用。 1. **Swing组件**: Swing包含了...

    Java swing 完全完整实例

    Swing 提供了丰富的组件集,包括按钮、文本框、标签、滚动面板、菜单、对话框等,这些组件都是基于Java的轻量级体系结构,与早期的重量级AWT组件相比,Swing组件在性能和功能上有所提升。Swing还支持模态和非模态...

    swing经典开发,全面了解java swing核心编程

    Swing提供了许多预定义的组件,如按钮、文本框、标签、菜单等,以及高级组件如表格、树视图和滚动面板。Swing还支持事件处理、布局管理、国际化和可访问性,使得开发者可以构建功能强大的桌面应用程序。 在"精通...

    JavaSwing小程序

    8. **Swing工具包**:Swing还包括一些高级组件,如JTabbedPane(选项卡面板)、JScrollPane(滚动面板)、JSplitPane(分割面板)等,它们为创建复杂布局提供了便利。 9. **异步编程**:Swing是线程安全的,所有的...

    java根面板,层面板,玻璃面板,内容面板专题.doc

    通过JRootPane,开发者可以控制组件的布局和行为,比如设置菜单栏或者管理子面板。 **JLayeredPane** 是一个特殊的面板,它允许组件在不同的层次上叠加。JLayeredPane覆盖了整个JFrame,除了标题栏和边框。在这个...

    java-swing精通电子书(chm)

    Swing提供了丰富的组件集,包括按钮、文本框、菜单、滚动面板等,允许开发者创建美观且功能强大的应用程序。在"java-swing精通电子书(chm)"中,你将深入学习Swing的各种特性和使用方法。 首先,Swing库是基于...

    swing各个组件实例演示

    Swing组件主要由JComponent类及其子类构成,包括按钮(JButton)、文本框(JTextField)、标签(JLabel)、面板(JPanel)、滚动窗格(JScrollPane)、菜单(JMenu)等。这些组件为创建复杂的用户界面提供了基础。 ...

    Java Swing 中文Api

    Swing API包含了许多组件,如按钮(Button)、文本框(TextField)、标签(Label)、面板(Panel)、滚动窗格(JScrollPane)、菜单(MenuBar)等,这些组件使得开发者能够构建复杂的用户界面。其中,JFrame是顶级容器,用于承载...

    java+swing漂亮软件界面+超酷+以及javaswing教程.zip

    Java Swing 提供了大量的组件,如按钮、文本框、滚动面板、菜单等,这些组件可以用来构建复杂的用户交互。Swing组件是轻量级的,它们运行在Java虚拟机上,这使得跨平台兼容性成为可能。Swing还引入了事件处理模型,...

    Java.Swing图形界面开发与案例详解随书实例代码

    7. **第五章代码**:这部分可能涉及到Swing的滚动面板(JScrollPane),它允许在窗口内显示超出行或列的内容,常用于文本区域和表格。 8. **第十四章代码**:可能包含Swing的组件容器,如JPanels,以及如何使用组合...

    基于Swing的类似编辑器的界面

    在Swing应用中,可能需要设计一个菜单项或快捷键来触发文件复制,同时需要处理错误,确保文件操作的安全性和稳定性。 接下来,"JSplitPane"是Swing中的一个分割面板组件,用于将GUI区域分为两个或更多部分,用户...

    Swing样式大全(全56种经典)

    Swing组件主要包括窗口容器(如JFrame)、面板(如JPanel)、按钮(如JButton)、文本输入(如JTextField、JTextArea)、菜单(如JMenu、JMenuBar)、滚动面板(如 JScrollPane)以及各种对话框等。这些组件都支持...

Global site tag (gtag.js) - Google Analytics