JTabbedPane的用法的最简举例

本文介绍了一个使用Java Swing实现的学生信息管理系统UI设计案例。该系统采用JTabbedPane进行多页面管理,通过不同面板实现了学生信息的选择、更新、插入和删除等功能,并通过窗口监听实现了程序的正常退出。

package manager_ui;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;

public class UIManager extends JFrame{

 
 public UIManager(){
  super("学生信息管理系统");
 }
 
 public void initUI(){
  this.setBounds(300, 300, 500, 400);
  this.addWindowListener(new WindowAdapter(){
   public void windowClosing(WindowEvent e) {
    super.windowClosing(e);
    System.exit(0);
   }});
  layoutUI();
  this.setVisible(true);
 }
 
 private void layoutUI(){

  //对象实例化
  JTabbedPane tab = new JTabbedPane(JTabbedPane.TOP); 
  //容器
  Container container = this.getLayeredPane();
  //对象化面板
  JPanel combop = new JPanel();
  JPanel p1 = new JPanel();
  JPanel p2 = new JPanel();
  JPanel p3 = new JPanel();
  JPanel p4 = new JPanel();


  tab.add(p1,"Select");
  tab.add(p2,"Updata");
  tab.add(p3,"Inserte");
  tab.add(p4,"Delete");
  
  combop.add(new JLabel("学生信息管理系统"));
  
  container.setLayout(new BorderLayout());
  container.add(combop,BorderLayout.NORTH);
  container.add(tab,BorderLayout.CENTER);
  
 }
}

 


********************************************************************************

 

package manager_ui;

public class MainApp {
 public static void main(String[] args) {
  UIManager ui = new UIManager();
  ui.initUI();
 }
}

 

 

 

样式如下:

 

帮我分析代码 @Override public void actionPerformed(ActionEvent actionEvent) { System.exit(10); } }); c.add(juj); jButton=new JButton("交流"); jButton.setFont(new Font("黑体", 0, 15)); jButton.setBounds(1045, 198, 80, 40); jButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { new Login(); } }); c.add(jButton); JTabbedPane jtb = new JTabbedPane(); jtb.setFont(new Font("黑体",4,26)); jtb.setBounds(43, 200, 1200, 780); c.add(jtb); JTabbedPane jtbp = new JTabbedPane(); jtbp.setFont(new Font("黑体",4,20)); jtbp.setBounds(43, 200, 1200, 780); Object[][] tableDate = new Object[40][3]; Object[] name = {"id", "设备编号", "类别名称"}; JPanel p1 = new JPanel(); p1.setLayout(null); p1.setBounds(0, 100, 800, 900); JTable d=new JTable(tableDate,name); d.setRowHeight(25); JScrollPane js = new JScrollPane(d); js.setBounds(0, 0, 700, 500); p1.add(js); jb = new JButton("查询全部"); jb.setIcon(new ImageIcon("C:\\Users\\Lenovo-pc\\IdeaProjects\\ShiXun\\src\\image\\2.png")); jb.setBounds(730, 35, 120, 35); jb.setFont(new Font("黑体", 0, 15)); jb.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { try { bw.write(myfmt.format(new java.util.Date()).toString()+"\n"); bw.write("查询全部设备类别信息\n"); bw.flush(); }catch (Exception e){ e.printStackTrace(); } for(int i=0;i<40;i++) { for(int j=0;j<3;j++) { d.setValueAt(" ",i,j); } } try { ps = con.prepareStatement("select * from device1"); rs = ps.executeQuery(); for (int i = 0; rs.next(); i++) { int id = rs.getInt(1); int num = rs.getInt(2); String name = rs.getString(3); d.setValueAt(Integer.toString(id), i, 0); d.setValueAt(Integer.toString(num), i, 1); d.setValueAt(name, i, 2); } } catch (Exception throwables) { throwables.printStackTrace(); } finally { try { if (rs != null) { rs.close(); } if (ps != null) { ps.close(); } } catch (SQLException a) { a.printStackTrace(); } } } }); p1.add(jb); jb1 = new JButton("查询"); jb1.setBounds(730, 80, 120, 35); jb1.setIcon(new ImageIcon("C:\\Users\\Lenovo-pc\\IdeaProjects\\ShiXun\\src\\image\\3.png")); jb1.setFont(new Font("黑体", 0, 15)); jb1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { String st1 = JOptionPane.showInputDialog(null, "设备编号", "查询", 1); System.out.println(st1); int m = 0; try { ps = con.prepareStatement("select * from device1"); rs = ps.executeQuery(); while (rs.next()) { int num = rs.getInt(2); String a = "" + num; if (st1.equals(a)) { m = 1; int id = rs.getInt(1); String name = rs.getString(3); d.setValueAt(Integer.toString(id), 0, 0); d.setValueAt(Integer.toString(num), 0, 1); d.setValueAt(name, 0, 2); } } if (m == 0) { try { bw.write(myfmt.format(new java.util.Date()).toString()+"\n"); bw.write("查询的设备类别数据不存在"); bw.flush(); bw.close(); }catch (Exception e){ e.printStackTrace(); } JOptionPane.showMessageDialog(null, "您查找的数据不存在", "提示:", JOptionPane.ERROR_MESSAGE); } } catch (Exception throwables) { throwables.printStackTrace(); } finally { try { if (rs != null) { rs.close(); } if (ps != null) { ps.close(); } } catch (SQLException a) { a.printStackTrace(); } } } }); p1.add(jb1); jb2 = new JButton("增加"); jb2.setBounds(730, 125, 120, 35); jb2.setIcon(new ImageIcon("C:\\Users\\Lenovo-pc\\IdeaProjects\\ShiXun\\src\\image\\4.png")); jb2.setFont(new Font("黑体", 0, 15)); jb2.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { JDialog jd1 = new JDialog(); jd1.setLayout(null); jd1.setTitle("增加"); jd1.setBounds(900, 200, 600, 600); JLabel ja=new JLabel("请输入新的信息"); ja.setFont(new Font("华文行楷",4,20)); ja.setBounds(225,-80,200,200); jd1.add(ja,BorderLayout.NORTH); JLabel ja1=new JLabel("id:"); ja1.setFont(new Font("华文行楷",4,18)); ja1.setBounds(40,48,40,40); jd1.add(ja1 ); SimpleDateFormat myfmt = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); Integer qw=myfmt.format(new java.util.Date()).toString().hashCode(); JLabel jt1=new JLabel(); jt1.setFont(new Font("黑体",4,19)); jt1.setText(qw.toString()); jt1.setBounds(110,58,180,25); jd1.add(jt1 ); JLabel ja2=new JLabel("设备编号:"); ja2.setFont(new Font("华文行楷",4,18)); ja2.setBounds(20,120,80,40); jd1.add(ja2 ); JTextField jt2=new JTextField(); jt2.setColumns(20); jt2.setBounds(110,128,100,25); jd1.add(jt2 ); JLabel ja3=new JLabel("类别名称:"); ja3.setFont(new Font("华文行楷",4,18)); ja3.setBounds(20,180,80,40); jd1.add(ja3 ); JTextField jt3=new JTextField(); jt3.setColumns(20); jt3.setBounds(110,190,100,25); jd1.add(jt3 ); JButton jb = new JButton("确定"); jb.setBounds(110,320,90,30); jd1.add(jb); jd1.setVisible(true); jb.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { Integer a=Integer.valueOf(jt1.getText()); Integer b=Integer.valueOf(jt2.getText()); String c=jt3.getText(); try { String sql = "insert into device1 values" +"(" + a + "," +b + ",'" + c + "'"+ ")"; PreparedStatement ps = con.prepareStatement(sql); ps.executeUpdate(); }catch (Exception throwables) { throwables.printStackTrace(); } finally { try { if (rs != null) { rs.close(); } if (ps != null) { ps.close(); } } catch (SQLException a1) { a1.printStackTrace(); } } } }); } }); p1.add(jb2); jb3 = new JButton("删除"); jb3.setBounds(730, 170, 120, 35); jb3.setIcon(new ImageIcon("C:\\Users\\Lenovo-pc\\IdeaProjects\\ShiXun\\src\\image\\5.png")); jb3.setFont(new Font("黑体", 0, 15)); jb3.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { int row=d.getSelectedRow(); if(row!=-1) { int result = JOptionPane.showConfirmDialog(null, "确定要删除吗?","请确认",JOptionPane.YES_NO_OPTION); if(result==JOptionPane.OK_OPTION) { try { String sql = "DELETE FROM device1 WHERE num"+"="+Integer.parseInt(d.getValueAt(row,1).toString()); PreparedStatement ps = con.prepareStatement(sql); ps.executeUpdate(); } catch (Exception throwables) { throwables.printStackTrace(); } finally { try { if (rs != null) { rs.close(); } if (ps != null) { ps.close(); } } catch (SQLException a1) { a1.printStackTrace(); } } } }else{ JOptionPane.showMessageDialog(null, "请选择要删除的行!","提示:",JOptionPane.ERROR_MESSAGE); } } }); p1.add(jb3); jb4 = new JButton("修改"); jb4.setBounds(730, 215, 120, 35); jb4.setIcon(new ImageIcon("C:\\Users\\Lenovo-pc\\IdeaProjects\\ShiXun\\src\\image\\6.png")); jb4.setFont(new Font("黑体", 0, 15)); p1.add(jb4); jb4.addActionListener(new ActionListener() { @Override public void actionPerformed (ActionEvent act) { int row=d.getSelectedRow(); if(row!=-1) { int result = JOptionPane.showConfirmDialog(null, "确定要修改吗?","请确认",JOptionPane.YES_NO_OPTION); if(result==JOptionPane.OK_OPTION) { JDialog jd1 = new JDialog(); jd1.setLayout(null); jd1.setTitle("修改"); jd1.setBounds(900, 200, 600, 600); JLabel ja=new JLabel("请输入新的信息"); ja.setFont(new Font("华文行楷",4,20)); ja.setBounds(225,-80,200,200); jd1.add(ja,BorderLayout.NORTH); JLabel ja1=new JLabel("编号:"); ja1.setFont(new Font("华文行楷",4,18)); ja1.setBounds(20,48,60,40); jd1.add(ja1 ); JTextField jt1=new JTextField(); jt1.setText(d.getValueAt(row,1).toString()); jt1.setColumns(20); jt1.setBounds(110,58,100,25); jd1.add(jt1 ); JLabel ja2=new JLabel("类别名称:"); ja2.setFont(new Font("华文行楷",4,18)); ja2.setBounds(20,120,80,40); jd1.add(ja2 ); JTextField jt2=new JTextField(); jt2.setText(d.getValueAt(row,2).toString()); jt2.setColumns(20); jt2.setBounds(110,128,100,25); jd1.add(jt2 ); JButton jb = new JButton("确定"); jb.setBounds(110,320,90,30); jd1.add(jb); jd1.setVisible(true); jb.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent actionEvent) { String st2=jt2.getText(); String st1=jt1.getText(); Integer a=Integer.parseInt(jt1.getText()); String b=jt2.getText(); try { String sql="update device1 set name='"+b+"' where num="+Integer.parseInt(d.getValueAt(row,1).toString()); ps= con.prepareStatement(sql); ps.executeUpdate(); }catch (Exception throwables) { throwables.printStackTrace(); } finally { try { if (rs != null) { rs.close(); } if (ps != null) { ps.close(); } } catch (SQLException y) { y.printStackTrace(); } } } }); } }else{ JOptionPane.showMessageDialog(null, "请选择修改的行!","提示:",JOptionPane.ERROR_MESSAGE); } } }); jtb.add("设备类别管理",p1); Object[][] table1 = new Object[40][4]; Object[] name2 = {"部门编号", "部门名称", "负责人","电话"}; JPanel p2 = new JPanel(); p2.setLayout(null); p2.setBounds(0, 100, 800, 500); JTable d3=new JTable(table1,name2); d3.setRowHeight(25); JScrollPane js3 = new JScrollPane(d3); js3.setBounds(0, 0, 700, 400); p2.add(js3); jn = new JButton("查询全部"); jn.setIcon(new ImageIcon("C:\\Users\\Lenovo-pc\\IdeaProjects\\ShiXun\\src\\image\\2.png")); jn.setBounds(730, 35, 120, 35); jn.setFont(new Font("黑体", 0, 15));
最新发布
12-02
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值