⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calendardateeditor.java

📁 一个用java写的地震分析软件(无源码)-used to write a seismic analysis software (without source)
💻 JAVA
字号:
package org.trinet.util.graphics.table;
import javax.swing.*;
import javax.swing.table.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
import java.text.*;

public class CalendarDateEditor extends AbstractCellEditor {
    private static final int CHARS_IN_DATE_STRING = 19;
    private static final int DEFAULT_FONT_SIZE = 12;
    private static final Font DEFAULT_FONT = new Font("Monospaced", Font.PLAIN, DEFAULT_FONT_SIZE);

    private DateFormat dateFormatter = DateFormat.getDateInstance();

    Font font = DEFAULT_FONT;
    int fontSize = DEFAULT_FONT_SIZE;

    JTextField component;

    public CalendarDateEditor() { 
	this(DEFAULT_FONT_SIZE, DEFAULT_FONT);
    }
  
    public CalendarDateEditor(int fontSize) { 
	this(fontSize, DEFAULT_FONT);
    }
  
    public CalendarDateEditor(Font font) { 
	this(DEFAULT_FONT_SIZE, font);
    }

    public CalendarDateEditor(int fontSize, Font font) { 
	super();
	if (fontSize > 0) this.fontSize = fontSize;
	if (font != null) this.font = font;

	component = new JTextField();
	component.setFont(this.font);
	component.setHorizontalAlignment(JTextField.LEFT);
	component.addActionListener(this);
    }
  
    public int getFontSize() {
	return fontSize;
    }

    public void setFontSize(int fontSize) {
	if (fontSize > 0) this.fontSize = fontSize;
	font = font.deriveFont((float) fontSize);
	component.setFont(font);
    }

    public boolean startCellEditing(EventObject anEvent) {
	if(anEvent == null) component.requestFocus();
	else if (anEvent instanceof MouseEvent) {
	    if (((MouseEvent)anEvent).getClickCount() < clickCountToStart)
	    return false;
	}
	return true;
    }

    public Component getComponent() {
	return component;
    }


    public void setCellEditorValue(Object value) {
	this.value = value;
	if (value == null) {
	    component.setText("");
	    return;
	}

	String text = null;
	if (value instanceof Calendar) {
	    text = dateFormatter.format(((GregorianCalendar) value).getTime());
	}
	else if (value instanceof Date) {
	    text = value.toString();
	    if (text.length() > CHARS_IN_DATE_STRING) text = text.substring(0,CHARS_IN_DATE_STRING);
	}
	else {
	    text = value.toString();
	}
	component.setText(text);
   }

    public Object getCellEditorValue() {
	String text = component.getText();
	if (text == null || text.length() == 0) return null;
//	Debug.println("value text:\"" + text + "\"" + " length: " + text.length());
	if (value instanceof Calendar) {
	    GregorianCalendar gregor = new GregorianCalendar();
	    if (text == null) return null; // return gregor;
	    gregor.setTime(java.sql.Date.valueOf(text));
	    return gregor;
	}
	else {
	    try {
		return java.sql.Timestamp.valueOf(text);
	    }
	    catch (Exception ex) {
		return null;
	    }
	}
    }


    public Component getTableCellEditorComponent( JTable table,Object value,
	boolean isSelected,int row,int column) {
	setCellEditorValue(value);
	return (Component) component;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -