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

📄 comboboxnumberrenderer.java

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

public class ComboBoxNumberRenderer extends JLabel implements ListCellRenderer {
  int fontSize=12;
  int length = 0;
  Font font = null;
  DecimalFormat df;
  private static String DEFAULT_PATTERN = "#.#";

  public ComboBoxNumberRenderer() { 
    this(null, 0, 0, DEFAULT_PATTERN);
  }
  
  public ComboBoxNumberRenderer(int fontSize) { 
    this(null, fontSize, 0, DEFAULT_PATTERN);
  }

  public ComboBoxNumberRenderer(int fontSize, int length) { 
    this(null, fontSize, length, DEFAULT_PATTERN);
  }
  
  public ComboBoxNumberRenderer(Font font) { 
    this(font, 0, 0, DEFAULT_PATTERN);
  }
  
  public ComboBoxNumberRenderer(Font font, int fontSize) { 
    this(font, fontSize, 0, DEFAULT_PATTERN);
  }
  
  public ComboBoxNumberRenderer(Font font, int fontSize, int length, String pattern) { 
    if (fontSize > 0) this.fontSize = fontSize;
    if (length > 0) this.length = length;
    if (font != null) {
	if (fontSize > 0) this.font = font.deriveFont((float) fontSize);
	else this.font = font;
    }
    else this.font = new Font("Monospaced", Font.PLAIN, fontSize);
    setFont(font);

    NumberFormat nf = NumberFormat.getNumberInstance();
    if (nf instanceof DecimalFormat) {
      df = (DecimalFormat) nf;
      df.setGroupingUsed(false);
      df.setDecimalSeparatorAlwaysShown(false);
      df.applyPattern(pattern);
    }

    setHorizontalAlignment(JLabel.RIGHT);
//    setHorizontalAlignment(JLabel.LEFT);
    setToolTipText("Value in cell must be a number");
  }
  
  public int getFontSize() {
    return fontSize;
  }

  public void setFontSize(int fontSize) {
    if (fontSize > 0) this.fontSize = fontSize;
    font = font.deriveFont((float) fontSize);
    setFont(font);
  }
 
  public Component getListCellRendererComponent( JList jlist, Object value,
			 int index, boolean isSelected, boolean cellHasFocus) {
    if (value == null) setText(null);
    else setText(value.toString());
    return this;
  }

// overide setText(String value) method of super class
// which is called by the super class method getTableCellRendererComponent
    public void setText(String value) {
	if (value == null || value.length() == 0 ) super.setText(null);
	else {
	    try {
		Number number = df.parse(value); 
		String tmpStr = null;
		if (number instanceof Integer) tmpStr = df.format(((Integer) number).longValue());
		else if (number instanceof Long) tmpStr = df.format(((Long) number).longValue());
		else if (number instanceof Double) tmpStr = df.format(((Double) number).doubleValue());
		super.setText(tmpStr);
	    }
	    catch (ParseException ex) {
		ex.printStackTrace();
		super.setText("");
	    }
	}
    }
}

⌨️ 快捷键说明

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