一个日记本的程序

用户类:

package dairy.bean;

public class User {
	private String name;
	private String gender;
	private int age;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public User(String name, String gender, int age) {
		super();
		this.name = name;
		this.gender = gender;
		this.age = age;
	}
	public User() {
		super();
		// TODO Auto-generated constructor stub
	}
	
	
}

日记类:

package dairy.bean;

import java.util.GregorianCalendar;

public class Diary {
	private String title;
	private String content;
	private GregorianCalendar time;
	private String authorName;
	public Diary() {
		super();
		// TODO Auto-generated constructor stub
	}
	public Diary(String title, String content, GregorianCalendar time,
			String authorName) {
		super();
		this.title = title;
		this.content = content;
		this.time = time;
		this.authorName = authorName;
	}
	public String getTitle() {
		return title;
	}
	public void setTitle(String title) {
		this.title = title;
	}
	public String getContent() {
		return content;
	}
	public void setContent(String content) {
		this.content = content;
	}
	public GregorianCalendar getTime() {
		return time;
	}
	public void setTime(GregorianCalendar time) {
		this.time = time;
	}
	public String getAuthorName() {
		return authorName;
	}
	public void setAuthorName(String authorName) {
		this.authorName = authorName;
	}
}

窗口类:

package dairy.gui;

import java.awt.Rectangle;
import java.util.GregorianCalendar;
import java.util.Vector;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;

import dairy.bean.Diary;
import dairy.bean.User;

public class DiaryWindow extends JFrame{
	private static final long serialVersionUID = 1L;

	private JPanel jContentPane = null;

	private JMenu mnuFile = null;
	private JMenuItem mnitem=null;
	private JMenuBar mnb=null; 

	private ImageIcon ic=null; 	

	private JLabel jLabel1 = null;

	private JLabel jLabel2 = null;

	private JLabel jLabel3 = null;

	private JScrollPane jScrollPane = null;

	private JTable jTable = null;

	private User user;
	private Vector<Diary> list=new Vector<Diary>() ;
	private JPanel jPanel = null;

	private JScrollPane jScrollPane1 = null;

	private JTextArea jTextArea = null;

	private JTextField jTextField = null;

	private JButton jButton = null;

	private JButton jButton1 = null;

	private JButton jButton2 = null;

	/**
	 * This is the default constructor
	 */
	public DiaryWindow(User user) {
		this.user = user;
		initialize();
	}

	/**
	 * This method initializes this
	 * 
	 * @return void
	 */
	private void initialize() {
		this.setSize(429, 408);
		this.setContentPane(getJContentPane());
		this.setTitle("JFrame");
	}

	/**
	 * This method initializes jContentPane
	 * 
	 * @return javax.swing.JPanel
	 */
	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jLabel3 = new JLabel();
			jLabel3.setText("新日记内容");
			jLabel3.setBounds(new Rectangle(2, 20, 66, 24));
			jLabel2 = new JLabel();
			jLabel2.setText("新日记标题");
			jLabel2.setBounds(new Rectangle(0, 2, 65, 18));
			jLabel1 = new JLabel();
			jLabel1.setBounds(new Rectangle(3, 31, 219, 23));
			jLabel1.setText("日记列表(双击相应日记查看)");
			JMenuBar mnb = new JMenuBar();
			mnuFile = new JMenu("选项");
			mnitem=new JMenuItem("主人信息");
			
			mnitem.addMouseListener(new java.awt.event.MouseAdapter() 
			{ 
			  public   void   mouseReleased(java.awt.event.MouseEvent   e) 
			{ 

			if   (e.getClickCount()   ==   1 ) 
			{ 
		      String name=user.getName();
		    	String gender=user.getGender();
		    	int  age=user.getAge();
		    	if(gender.equals("男")){
		    	ic = new ImageIcon(getClass().getResource("boy.png"));
			    }else if(gender.equals("女")){
			    	ic = new ImageIcon(getClass().getResource("girl.png"));
			    }
		    	JOptionPane.showMessageDialog(null, 
		    	   "姓名: "+name+"\n"+"性别: "+gender+"\n"+"年龄: "+age, "日记主人信息", JOptionPane.WARNING_MESSAGE, ic);
		    	 }

			}});
			mnuFile.add(mnitem);
			mnb.add(mnuFile);


			mnb.setBounds(new Rectangle(3, 5, 53, 25));
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(mnb, null);
			jContentPane.add(jLabel1, null);
			jContentPane.add(getJScrollPane(), null);
			jContentPane.add(getJPanel(), null);
			jContentPane.add(getJButton(), null);
		}
		return jContentPane;
	}

	/**
	 * This method initializes jScrollPane	
	 * 	
	 * @return javax.swing.JScrollPane	
	 */
	private JScrollPane getJScrollPane() {
		if (jScrollPane == null) {
			jScrollPane = new JScrollPane();
			jScrollPane.setBounds(new Rectangle(1, 52, 383, 86));
			jScrollPane.setViewportView(getJTable());
		}
		return jScrollPane;
	}

	/**
	 * This method initializes jTable	
	 * 	
	 * @return javax.swing.JTable	
	 */
	@SuppressWarnings("unchecked")
	private JTable getJTable() {
		if (jTable == null) {
			
			
			Vector<String> data = new Vector<String>();
			data.add("作者");
			data.add("内容");
			data.add("标题");
			data.add("时间");
			
			Vector<Vector<String>> list2 = new Vector<Vector<String>>();
			
			for(int i=0;i<list.size();i++){
				Vector<String> t = new Vector<String>();
				Diary t1 = list.get(i);
				t.add(t1.getTitle());
				t.add(t1.getContent());
				t.add(t1.getAuthorName());
				
				GregorianCalendar time = t1.getTime();
				int year = time.get(GregorianCalendar.YEAR);
				int month = time.get(GregorianCalendar.MONTH)+1;
				int day = time.get(GregorianCalendar.DATE);
				int hour = time.get(GregorianCalendar.HOUR_OF_DAY);
				int minute = time.get(GregorianCalendar.MINUTE);
				
				t.add(year + "-" + month + "-" + day + " " + hour + ":" + minute);
				
				list2.add(t);
			}
			jTable = new JTable(list2,data);
			jTable.addMouseListener(new java.awt.event.MouseAdapter() 
			{ 
			  public   void   mouseReleased(java.awt.event.MouseEvent   e) 
			{ 

			//是否左建双击 
			if   (e.getClickCount()   ==   2 ) 
			{ 
		       System.out.println("点击!");
		       int selectRow = jTable.getSelectedRow(); //获得鼠标选定的行
		       String title = (String)jTable.getValueAt(selectRow,2); //获得选定行的想要的列的值
		       String value = (String)jTable.getValueAt(selectRow,1); //获得选定行的想要的列的值
		      JOptionPane.showMessageDialog(null,"标题:   "+title+"\n"+"内容:   "+value,"日志详情", JOptionPane.PLAIN_MESSAGE);
			    	
			}}}); 
			 


			
		}
		return jTable;
	}

	/**
	 * This method initializes jPanel	
	 * 	
	 * @return javax.swing.JPanel	
	 */
	private JPanel getJPanel() {
		if (jPanel == null) {
			jPanel = new JPanel();
			jPanel.setLayout(null);
			jPanel.setBounds(new Rectangle(4, 162, 408, 208));
			jPanel.add(jLabel2, null);
			jPanel.add(jLabel3, null);
			jPanel.add(getJScrollPane1(), null);
			jPanel.add(getJTextField(), null);
			jPanel.setVisible(false);
			jPanel.add(getJButton1(), null);
			jPanel.add(getJButton2(), null);
		}
		return jPanel;
	}

	/**
	 * This method initializes jScrollPane1	
	 * 	
	 * @return javax.swing.JScrollPane	
	 */
	private JScrollPane getJScrollPane1() {
		if (jScrollPane1 == null) {
			jScrollPane1 = new JScrollPane();
			jScrollPane1.setBounds(new Rectangle(6, 45, 390, 109));
			jScrollPane1.setViewportView(getJTextArea());
		}
		return jScrollPane1;
	}

	/**
	 * This method initializes jTextArea	
	 * 	
	 * @return javax.swing.JTextArea	
	 */
	private JTextArea getJTextArea() {
		if (jTextArea == null) {
			jTextArea = new JTextArea();
		}
		return jTextArea;
	}

	/**
	 * This method initializes jTextField	
	 * 	
	 * @return javax.swing.JTextField	
	 */
	private JTextField getJTextField() {
		if (jTextField == null) {
			jTextField = new JTextField();
			jTextField.setBounds(new Rectangle(64, 0, 318, 22));
		}
		return jTextField;
	}

	/**
	 * This method initializes jButton	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton() {
		if (jButton == null) {
			jButton = new JButton();
			jButton.setBounds(new Rectangle(139, 140, 92, 20));
			jButton.setText("写新日记");
			jButton.addMouseListener(new java.awt.event.MouseAdapter() {
				public void mouseClicked(java.awt.event.MouseEvent e) {
					
					jPanel.setVisible(true);
				}
				
			});
		}
		return jButton;
	}

	/**
	 * This method initializes jButton1	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton1() {
		if (jButton1 == null) {
			jButton1 = new JButton();
			jButton1.setBounds(new Rectangle(63, 169, 66, 28));
			jButton1.setText("保存");
			jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
				public void mouseClicked(java.awt.event.MouseEvent e) {
					
					int result = JOptionPane.showConfirmDialog(null, "确定保存这篇日记?");
					if(result == JOptionPane.YES_OPTION){
						GregorianCalendar time = new GregorianCalendar();
						
						Diary diary = new Diary(user.getName(), jTextArea.getText(), time, jTextField.getText());
						list.add(diary);
						JOptionPane.showMessageDialog(null, "日记保存成功");
						jTextField.setText("");
						jTextArea.setText("");
						jTable = null;					
						jScrollPane.setViewportView(getJTable());
					}
					
					
				}
			});
		}
		return jButton1;
	}

	/**
	 * This method initializes jButton2	
	 * 	
	 * @return javax.swing.JButton	
	 */
	private JButton getJButton2() {
		if (jButton2 == null) {
			jButton2 = new JButton();
			jButton2.setBounds(new Rectangle(237, 167, 66, 28));
			jButton2.setText("放弃");
		}
		return jButton2;
	}
}

主函数
package dairy.main;

import javax.swing.UIManager;

import dairy.bean.User;
import dairy.gui.DiaryWindow;

public class DiaryMain {
	public static void main(String[] args) {
		try {
			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
		} catch (Exception e) {
			// TODO: handle exception
		}
		
		User user=new User("JavaWeb","male",20);
		
		DiaryWindow diaryWindow=new DiaryWindow(user);
		diaryWindow.setVisible(true);
		
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值