现在的位置: 首页 > 综合 > 正文

自定义java Swing日历选择组件JCalendarChooser

2013年08月27日 ⁄ 综合 ⁄ 共 5117字 ⁄ 字号 评论关闭

package cn.net.iem.view.mainframe;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;

import cn.net.iem.calendar.JCalendarChooser;
import cn.net.iem.view.EditJTextField;
import cn.net.iem.view.loggin.Loggin;
/*
 	 * @param time      发震时间
	 * @param longitude 经度
	 * @param altitude  纬度
	 * @param depth     深度
	 * @param magnitude 震级
	 * @param location  参考位置
 * */
public class SearchPane extends JPanel implements ActionListener,MouseListener {
	//编辑属性
	//private JComboBox regionComBox;              
	private EditJTextField minTimeField,maxTimeField,minLongitudeField,maxLongitudeField,minAltitudeField,maxAltitudeField,
	                       minDepthField,maxDepthField,minMagnitudeField,maxMagnitudeField,locationField;
	private JButton searchBut;
	//保存编辑属性后的结果
	private String minTime;
	private String maxTime;
	private float minLongitude;
	private float maxLongitude;
	private float minAltitude;
	private float maxAltitude;
	private int minDepth;
	private int maxDepth;
	private float minMagnitude;
	private float maxMagnitude;
	private String location;
	public SearchPane(){
		super();
		initial(10);
		create();
		addListener();
	}
	/**
	 *初始化类属性
	 * */
	private void initial(int size){
		minTimeField=new EditJTextField(size);
		maxTimeField=new EditJTextField(size);
		minLongitudeField=new EditJTextField(size);
		maxLongitudeField=new EditJTextField(size);
		minAltitudeField=new EditJTextField(size);
		maxAltitudeField=new EditJTextField(size);
        minDepthField=new EditJTextField(size);
        maxDepthField=new EditJTextField(size);
        minMagnitudeField=new EditJTextField(size);
        maxMagnitudeField=new EditJTextField(size);
        locationField=new EditJTextField(size);
        searchBut=new JButton("查询");
	}
	/**
	 *组件添加监听器
	 * */
	private void addListener(){
		searchBut.addActionListener(this);
		minTimeField.addMouseListener(this);
		maxTimeField.addMouseListener(this);
	} 
	/**
	 *创建面板 
	 * */
	private void create(){	
		JLabel label1=new JLabel("发震时间:",JLabel.RIGHT);
		JLabel label3=new JLabel("经度:",JLabel.RIGHT);
		JLabel label4=new JLabel("纬度:",JLabel.RIGHT);
		JLabel label5=new JLabel("深度(千米):",JLabel.RIGHT);
		JLabel label6=new JLabel("震级(M):",JLabel.RIGHT);
		JLabel label7=new JLabel("位置(支持模糊查询):",JLabel.RIGHT);  
		JPanel pane1=new JPanel();
		pane1.add(searchBut);
		JPanel pane2=new JPanel();
		pane2.setLayout(new GridBagLayout());
        //设置网格组布局管理器的参数
        GridBagConstraints constraints=new GridBagConstraints();
        //使用网格组布局添加控件
        Loggin.add(pane2, label1,           constraints, 0,0,1,1,0,0,0,0); 
        Loggin.add(pane2, minTimeField,     constraints, 1,0,2,1,0,0,0,0); 
        Loggin.add(pane2, new JLabel(" 到 "), constraints, 3,0,1,1,0,0,0,0); 
        Loggin.add(pane2, maxTimeField,     constraints, 4,0,2,1,0,0,0,0); 
        Loggin.add(pane2, new JLabel("        "),   constraints, 6,0,2,1,0,0,0,0); 
        Loggin.add(pane2, label3,           constraints, 8,0,1,1,0,0,0,0); 
        Loggin.add(pane2, minLongitudeField,constraints, 9,0,2,1,0,0,0,0); 
        Loggin.add(pane2, new JLabel(" 到 "), constraints,11,0,1,1,0,0,0,0);
        Loggin.add(pane2, maxLongitudeField,constraints,12,0,2,1,0,0,0,0);      
        Loggin.add(pane2, label4,           constraints, 0,1,1,1,0,0,0,0); 
        Loggin.add(pane2, minAltitudeField, constraints, 1,1,2,1,0,0,0,0); 
        Loggin.add(pane2, new JLabel(" 到 "), constraints, 3,1,1,1,0,0,0,0); 
        Loggin.add(pane2, maxAltitudeField, constraints, 4,1,2,1,0,0,0,0); 
        Loggin.add(pane2, new JLabel("        "),   constraints, 6,1,2,1,0,0,0,0); 
        Loggin.add(pane2, label5,           constraints, 8,1,1,1,0,0,0,0); 
        Loggin.add(pane2, minDepthField,    constraints, 9,1,2,1,0,0,0,0); 
        Loggin.add(pane2, new JLabel(" 到 "), constraints,11,1,1,1,0,0,0,0);
        Loggin.add(pane2, maxDepthField,    constraints,12,1,2,1,0,0,0,0);   
        Loggin.add(pane2, label6,           constraints, 0,2,1,1,0,0,0,0); 
        Loggin.add(pane2, minMagnitudeField,constraints, 1,2,2,1,0,0,0,0); 
        Loggin.add(pane2, new JLabel(" 到 "), constraints, 3,2,1,1,0,0,0,0); 
        Loggin.add(pane2, maxMagnitudeField,constraints, 4,2,2,1,0,0,0,0); 
        Loggin.add(pane2, new JLabel("        "),   constraints, 6,2,2,1,0,0,0,0); 
        Loggin.add(pane2, label7,           constraints, 8,2,1,1,0,0,0,0); 
        Loggin.add(pane2, locationField,    constraints, 9,2,5,1,0,0,0,0); 
        
        this.setLayout(new BorderLayout());
		this.add(pane2,BorderLayout.NORTH);	
		this.add(pane1,BorderLayout.SOUTH);
	}
	@Override
	public void actionPerformed(ActionEvent e) {
		if(e.getSource()==searchBut){
			//打开查询界面
			new SearchFrame().setVisible(true);
		}
	}
	@Override
	public void mouseClicked(MouseEvent e) {
		// TODO Auto-generated method stub
		if(e.getSource()==minTimeField&&e.getButton()==MouseEvent.BUTTON1){
			JCalendarChooser myJCalendar = new JCalendarChooser(minTimeField);
			int returnValue = myJCalendar.showOpenDialog();
			if (returnValue == JCalendarChooser.CLEAR_OPTION)
				minTimeField.setText("");
			else if (returnValue == JCalendarChooser.APPROVE_OPTION)
				minTimeField.setText(myJCalendar.getDate());
		}else if(e.getSource()==maxTimeField&&e.getButton()==MouseEvent.BUTTON1){
			JCalendarChooser myJCalendar = new JCalendarChooser(maxTimeField);
			int returnValue = myJCalendar.showOpenDialog();
			if (returnValue == JCalendarChooser.CLEAR_OPTION)
				maxTimeField.setText("");
			else if (returnValue == JCalendarChooser.APPROVE_OPTION)
				maxTimeField.setText(myJCalendar.getDate());
		}
	}
	public void mouseEntered(MouseEvent e) {}
	public void mouseExited(MouseEvent e) {}
	public void mousePressed(MouseEvent e) {}
	public void mouseReleased(MouseEvent e) {}
}

抱歉!评论已关闭.