java多线程综合编程实验之GUI

GuiApplication.java


package edu.whut.cs.oo;

import edu.whut.cs.oo.frame.LoginFrame;

public class GuiApplication extends Application {
	
	public static void main(String[] args) throws Exception {
		LoginFrame loginframe= new LoginFrame();
		loginframe.setVisible(true);
	}
	
}

frame《----文件夹名称,下面所有东西都是放在这个里面;
BaseFrame.java

package edu.whut.cs.oo.frame;

import javax.swing.JFrame;

import edu.whut.cs.oo.Application;
import edu.whut.cs.oo.domain.User;
import edu.whut.cs.oo.service.DocumentService;
import edu.whut.cs.oo.service.UserService;

public class BaseFrame extends JFrame {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	protected User currentUser = Application.currentUser;
	protected UserService userService = Application.userService;
	protected DocumentService documentService = Application.documentService;
	
	public User getCurrentUser() {
		return currentUser;
	}
	public void setCurrentUser(User currentUser) {
		this.currentUser = currentUser;
	}
	
}

FileFrame.java

package edu.whut.cs.oo.frame;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FileDialog;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.swing.table.DefaultTableModel;

import edu.whut.cs.oo.domain.Document;
import edu.whut.cs.oo.domain.Operator;
import edu.whut.cs.oo.exception.BaseException;

public class FileFrame extends BaseFrame{
	
	private DefaultTableModel tableModel;
	private JTable table;
	JPanel panel_up,panel_down;
	JTextField DoctextField,filetextField;
	JTabbedPane tabbedPane ;
	JTextArea textArea;
	
	public FileFrame() {		
		setTitle("文件管理界面");
		setSize(400, 300);
		Toolkit toolkit = getToolkit();
		Dimension dimension = toolkit.getScreenSize();
		int screenHeight = dimension.height;
		int screenWidth = dimension.width;
		int frm_Height = this.getHeight();
		int frm_width = this.getWidth();
		this.setLocation((screenWidth - frm_width) / 2,
				(screenHeight - frm_Height) / 2);
		
		tabbedPane = new JTabbedPane(JTabbedPane.TOP);
		getContentPane().add(tabbedPane, BorderLayout.CENTER);
		
		//文件下载卡片
		JPanel panel_down = new JPanel();
		tabbedPane.addTab("文件下载", null, panel_down, null);
		panel_down.setLayout(null);		
				
		JScrollPane scrollPane = new JScrollPane();
		panel_down.add(scrollPane);
		
		scrollPane.setBounds(10, 10, 359, 126);
		table = new JTable();	
		
		showFileInfoToTable();		
		
		table.setAutoResizeMode(JTable.AUTO_RESIZE_ALL_COLUMNS);
		table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		scrollPane.setViewportView(table);
	
		JButton downButton = new JButton("下载");
		downButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				downButtonActionPerformed(e);
			}
		});
		downButton.setBounds(121, 170, 65, 23);
		panel_down.add(downButton);
		
		JButton cancelButton_del = new JButton("返回");
		cancelButton_del.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				cancelButton_delActionPerformed(e);
			}
		});
		cancelButton_del.setBounds(187, 170, 65, 23);
		panel_down.add(cancelButton_del);
		
		//文件上传卡片
		panel_up = new JPanel();
		tabbedPane.addTab("文件上传", null, panel_up, null);
		panel_up.setLayout(null);
		
		JLabel DocLabel = new JLabel("档案号");
		DocLabel.setBounds(32, 28, 54, 15);
		panel_up.add(DocLabel);		
		
		JLabel DescriptionLabel = new JLabel("档案描述");
		DescriptionLabel.setBounds(32, 71, 54, 15);
		panel_up.add(DescriptionLabel);
		
		JLabel fileLabel = new JLabel("档案文件名");
		fileLabel.setBounds(32, 151, 65, 15);
		panel_up.add(fileLabel);
		
		DoctextField = new JTextField();
		DoctextField.setBounds(121, 25, 131, 21);
		panel_up.add(DoctextField);
		DoctextField.setColumns(10);
		
		JButton upButton = new JButton("上传");
		upButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				upButtonActionPerformed(e);				
			}
		});
		upButton.setBounds(121, 188, 65, 23);
		panel_up.add(upButton);
		
		JButton cancelButton = new JButton("取消");
		cancelButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				cancelButtonActionPerformed(e);
			}
		});
		cancelButton.setBounds(187, 188, 65, 23);
		panel_up.add(cancelButton);
		
		JScrollPane scrollPane_1 = new JScrollPane();
		scrollPane_1.setBounds(123, 67, 129, 60);
		panel_up.add(scrollPane_1);
		
		textArea = new JTextArea();
//		textArea.setBounds(123, 67, 129, 60);
//		scrollPane_1.add(textArea);
		scrollPane_1.setViewportView(textArea);
		
		JButton fileButton = new JButton("打开");
		fileButton.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				fileButtonActionListener(e);
			}
		});
		fileButton.setBounds(262, 147, 65, 23);
		panel_up.add(fileButton);
		
		filetextField = new JTextField();
		filetextField.setBounds(121, 148, 131, 21);
		panel_up.add(filetextField);
		filetextField.setColumns(255);
		
		
		tabbedPane.addChangeListener(new ChangeListener() {
			public void stateChanged(ChangeEvent evt) {
				jTabbedPaneStateChanged(evt);
			}
		});
		setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
		
		if (currentUser instanceof Operator) 
			tabbedPane.setEnabledAt(1, true);
		else
			tabbedPane.setEnabledAt(1, false);
	}
	
	public static void launch() {	   
		java.awt.EventQueue.invokeLater(new Runnable() {
			public void run() {
				new FileFrame().setVisible(true);
			}
		});
	}
	
	public void setTabSeq(int index){
		tabbedPane.setSelectedIndex(index);
	}
	
	private void jTabbedPaneStateChanged(javax.swing.event.ChangeEvent evt) {
		if(tabbedPane.getSelectedIndex()==0){
			showFileInfoToTable();
		}		
	}
	
	public void showFileInfoToTable() {
		try {
			String[] colName = {"档案号", "创建者", "时间","文件名","描述"};
			String[][] tableValue = new String[10][5];
			List<Document> documents = documentService.getAllDocuments();
			for (int row = 0; row < documents.size(); row++) {
				Document doc = documents.get(row);
				tableValue[row][0]=doc.getSn();
				tableValue[row][1]=doc.getUser().getName();
				tableValue[row][2]=(doc.getTimestamp()).toString();
				tableValue[row][3]=doc.getName();
				tableValue[row][4]=doc.getDescription();
			}
			tableModel = new DefaultTableModel(tableValue, colName);
			table.setModel(tableModel);
		}
		catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	private void upButtonActionPerformed(ActionEvent evt) {
	try{
		if (JOptionPane.showConfirmDialog(this,
				"确定上传档案吗?\t\n单击确定按钮将上传。", "确认对话框",
				JOptionPane.OK_CANCEL_OPTION) == JOptionPa
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值