📄 zslonglatedit.java
字号:
package wisesoft;
import java.awt.*;
import com.borland.dbswing.*;
import javax.swing.*;
import com.borland.jbcl.layout.*;
import javax.swing.border.*;
import java.awt.event.*;
import wisesoft.*;
/**
* <p>Title: java 经纬度录入控件</p>
* <p>Description: 可以方便快速录入经纬度,并支持读取 </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
public class ZSLongLatEdit
extends JPanel {
//Com_Func Com_Func
private String sample = "Sample";
XYLayout xYLayout1 = new XYLayout();
JTextField jText_Lat_Minute = new JTextField();
JTextField JTEXT_Long_Minute = new JTextField();
JTextField jText_lat_PerSecond = new JTextField();
JTextField jText_lat_second = new JTextField();
JTextField jText_Long_Second = new JTextField();
JTextField JText_Lat_Degree = new JTextField();
JTextField JText_Long_Degree = new JTextField();
JTextField jText_Long_PerSecond = new JTextField();
JLabel JLabel_Lat = new JLabel();
String[] Long_str = new String[] {
"E", "W"};
String[] Lat_str = new String[] {
"N", "S"};
JComboBox JCombo_Long = new JComboBox(Long_str);
JComboBox JCombo_Lat = new JComboBox(Lat_str);
JLabel jLabel3 = new JLabel();
JLabel jLabel4 = new JLabel();
JLabel jLabel5 = new JLabel();
JLabel jLabel6 = new JLabel();
JLabel jLabel7 = new JLabel();
JLabel jLabel8 = new JLabel();
JLabel jLabel9 = new JLabel();
JLabel jLabel10 = new JLabel();
TitledBorder titledBorder1;
TitledBorder titledBorder2;
JLabel JLabel_Title = new JLabel();
JLabel JLabel_Long = new JLabel();
public ZSLongLatEdit() {
try {
//ZSCom_Func ZSCom_Func=new ZSCom_Func();
jbInit();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
private void jbInit() throws Exception {
titledBorder1 = new TitledBorder("");
titledBorder2 = new TitledBorder("");
jText_Long_PerSecond.setHorizontalAlignment(SwingConstants.LEFT);
jText_Long_PerSecond.addKeyListener(new
ZSLongLatEdit_jText_Long_PerSecond_keyAdapter(this));
jText_Long_PerSecond.setFont(new java.awt.Font("Dialog", 0, 12));
jText_Long_PerSecond.setText("");
jText_Long_PerSecond.setBackground(Color.white);
JText_Long_Degree.setHorizontalAlignment(SwingConstants.LEFT);
JText_Long_Degree.addKeyListener(new
ZSLongLatEdit_JText_Long_Degree_keyAdapter(this));
JText_Long_Degree.setFont(new java.awt.Font("Dialog", 0, 12));
//JText_Long_Degree.setSelectionStart(1);
JText_Long_Degree.setText("");
JText_Long_Degree.setBackground(Color.white);
JText_Lat_Degree.setFont(new java.awt.Font("Dialog", 0, 12));
JText_Lat_Degree.setText("");
JText_Lat_Degree.setBackground(Color.white);
JText_Lat_Degree.setHorizontalAlignment(SwingConstants.LEFT);
JText_Lat_Degree.addKeyListener(new
ZSLongLatEdit_JText_Lat_Degree_keyAdapter(this));
jText_Long_Second.setFont(new java.awt.Font("Dialog", 0, 12));
jText_Long_Second.setText("");
jText_Long_Second.setBackground(Color.white);
jText_Long_Second.setHorizontalAlignment(SwingConstants.LEFT);
jText_Long_Second.addActionListener(new ZSLongLatEdit_jText_Long_Second_actionAdapter(this));
jText_Long_Second.addKeyListener(new
ZSLongLatEdit_jText_Long_Second_keyAdapter(this));
jText_lat_second.setHorizontalAlignment(SwingConstants.LEFT);
jText_lat_second.addKeyListener(new
ZSLongLatEdit_jText_lat_second_keyAdapter(this));
jText_lat_second.setFont(new java.awt.Font("Dialog", 0, 12));
jText_lat_second.setText("");
jText_lat_second.setBackground(Color.white);
jText_lat_PerSecond.setFont(new java.awt.Font("Dialog", 0, 12));
jText_lat_PerSecond.setText("");
jText_lat_PerSecond.setBackground(Color.white);
jText_lat_PerSecond.setHorizontalAlignment(SwingConstants.LEFT);
jText_lat_PerSecond.addKeyListener(new
ZSLongLatEdit_jText_lat_PerSecond_keyAdapter(this));
jText_lat_PerSecond.addMouseListener(new
ZSLongLatEdit_jText_lat_PerSecond_mouseAdapter(this));
JTEXT_Long_Minute.setFont(new java.awt.Font("Dialog", 0, 12));
JTEXT_Long_Minute.setText("");
JTEXT_Long_Minute.setBackground(Color.white);
JTEXT_Long_Minute.setHorizontalAlignment(SwingConstants.LEFT);
JTEXT_Long_Minute.addKeyListener(new
ZSLongLatEdit_JTEXT_Long_Minute_keyAdapter(this));
jText_Lat_Minute.setFont(new java.awt.Font("Dialog", 0, 12));
//jText_Lat_Minute.setSelectionStart(2);
jText_Lat_Minute.setText("");
jText_Lat_Minute.setBackground(Color.white);
jText_Lat_Minute.setHorizontalAlignment(SwingConstants.LEFT);
jText_Lat_Minute.addKeyListener(new
ZSLongLatEdit_jText_Lat_Minute_keyAdapter(this));
this.setLayout(xYLayout1);
xYLayout1.setWidth(285);
xYLayout1.setHeight(124);
JLabel_Lat.setText("纬度");
JLabel_Lat.setVerticalAlignment(SwingConstants.CENTER);
JLabel_Lat.setFont(new java.awt.Font("Dialog", 0, 12));
JLabel_Lat.setRequestFocusEnabled(true);
JLabel_Lat.setToolTipText("");
JLabel_Lat.setHorizontalAlignment(SwingConstants.RIGHT);
JLabel_Lat.setHorizontalTextPosition(SwingConstants.RIGHT);
jLabel3.setText("度");
jLabel3.setFont(new java.awt.Font("Dialog", 0, 12));
jLabel4.setText("分");
jLabel4.setFont(new java.awt.Font("Dialog", 0, 12));
jLabel5.setFont(new java.awt.Font("Dialog", 0, 12));
jLabel5.setText("秒");
jLabel6.setFont(new java.awt.Font("Dialog", 0, 12));
jLabel6.setText("分");
jLabel7.setFont(new java.awt.Font("Dialog", 0, 12));
jLabel7.setText("度");
jLabel8.setText("秒");
jLabel8.setFont(new java.awt.Font("Dialog", 0, 12));
jLabel9.setText("秒/百");
jLabel9.setFont(new java.awt.Font("Dialog", 0, 12));
jLabel10.setFont(new java.awt.Font("Dialog", 0, 12));
jLabel10.setText("秒/百");
this.setBorder(BorderFactory.createRaisedBevelBorder());
JCombo_Long.setEnabled(false);
JCombo_Long.setFont(new java.awt.Font("Dialog", 0, 12));
JCombo_Long.setAutoscrolls(false);
JCombo_Long.setToolTipText("");
JCombo_Long.setEditable(false);
JCombo_Long.setLightWeightPopupEnabled(false);
JCombo_Long.setPopupVisible(false);
JCombo_Lat.setEnabled(false);
JCombo_Lat.setFont(new java.awt.Font("Dialog", 0, 12));
JCombo_Lat.setAutoscrolls(false);
JCombo_Lat.setToolTipText("");
JCombo_Lat.setLightWeightPopupEnabled(false);
JCombo_Lat.setPopupVisible(false);
JLabel_Title.setFont(new java.awt.Font("Dialog", 0, 12));
JLabel_Title.setVerifyInputWhenFocusTarget(true);
JLabel_Title.setText("经纬度");
JLabel_Long.setHorizontalTextPosition(SwingConstants.RIGHT);
JLabel_Long.setHorizontalAlignment(SwingConstants.RIGHT);
JLabel_Long.setToolTipText("");
JLabel_Long.setFont(new java.awt.Font("Dialog", 0, 12));
JLabel_Long.setRequestFocusEnabled(true);
JLabel_Long.setVerticalAlignment(SwingConstants.CENTER);
JLabel_Long.setText("经度");
this.add(JCombo_Long, new XYConstraints(39, 37, 46, 22));
this.add(jLabel9, new XYConstraints(250, 39, -1, -1));
this.add(jLabel10, new XYConstraints(251, 82, -1, -1));
this.add(jText_lat_PerSecond, new XYConstraints(226, 79, 21, -1));
this.add(jText_lat_second, new XYConstraints(183, 79, 21, -1));
this.add(jLabel8, new XYConstraints(209, 82, -1, -1));
this.add(jLabel6, new XYConstraints(168, 82, -1, -1));
this.add(jText_Lat_Minute, new XYConstraints(142, 79, 21, -1));
this.add(jLabel7, new XYConstraints(126, 81, 16, 20));
this.add(JText_Lat_Degree, new XYConstraints(88, 80, 31, 22));
this.add(JCombo_Lat, new XYConstraints(39, 80, 45, 22));
this.add(JText_Long_Degree, new XYConstraints(88, 37, 30, 22));
this.add(jLabel3, new XYConstraints(126, 38, 16, 20));
this.add(JTEXT_Long_Minute, new XYConstraints(142, 37, 21, 22));
this.add(jLabel4, new XYConstraints(168, 39, -1, -1));
this.add(jText_Long_Second, new XYConstraints(183, 37, 21, 22));
this.add(jLabel5, new XYConstraints(209, 39, -1, -1));
this.add(jText_Long_PerSecond, new XYConstraints(226, 37, 21, 22));
this.add(JLabel_Lat, new XYConstraints(2, 83, 36, -1));
this.add(JLabel_Title, new XYConstraints(10, 3, 134, 22));
this.add(JLabel_Long, new XYConstraints(2, 39, 36, -1));
}
public String getSample() {
return sample;
}
public void setSample(String sample) {
this.sample = sample;
}
public static void main(String[] args) {
ZSLongLatEdit ZSLongLatEdit1 = new ZSLongLatEdit();
}
/**
设置标题
*/
public void setTitle(String tmpstr) {
JLabel_Title.setText(tmpstr);
}
/**
获得经度串,10位格式
*/
public String getLongStr() {
if (Check()) {
String tmpstr = (String) JCombo_Long.getSelectedItem()
+ JText_Long_Degree.getText()
+ JTEXT_Long_Minute.getText()
+ jText_Long_Second.getText()
+ jText_Long_PerSecond.getText();
if (tmpstr.equals("E000000000")) {
return null;
}
return tmpstr;
}
else {
return "";
}
}
/**
设置经度串,10位格式,不进行合法判定
*/
public void setLongStr(String slong) {
JText_Long_Degree.setText("");
JTEXT_Long_Minute.setText("");
jText_Long_Second.setText("");
jText_Long_PerSecond.setText("");
String tmp_str;
//清空
if (slong.equals("") || slong == null) {
return;
}
try {
tmp_str = slong.substring(0, 1);
if (tmp_str.equals("E")) {
JCombo_Long.setSelectedIndex(0);
}
else {
JCombo_Long.setSelectedIndex(1);
}
JText_Long_Degree.setText(slong.substring(1, 4));
JTEXT_Long_Minute.setText(slong.substring(4, 6));
jText_Long_Second.setText(slong.substring(6, 8));
jText_Long_PerSecond.setText(slong.substring(8, 10));
}
catch (Exception ex) {
ZSCom_Func.showErrorMessageDlg(this, "不合法的经纬度载入", "提示");
}
/*(String)JCombo_Long.getSelectedItem()
+JText_Long_Degree
+JTEXT_Long_Minute
+jText_Long_Second
+jText_Long_PerSecond;
}*/
}
/**
设置纬度串,9位格式,不进行合法判定
*/
public void setLatStr(String slat) {
JText_Lat_Degree.setText("");
jText_Lat_Minute.setText("");
jText_lat_second.setText("");
jText_lat_PerSecond.setText("");
String tmp_str;
//清空
if (slat.equals("") || slat == null) {
return;
}
try {
tmp_str = slat.substring(0, 1);
if (tmp_str.equals("N")) {
JCombo_Lat.setSelectedIndex(0);
}
else {
JCombo_Lat.setSelectedIndex(1);
}
JText_Lat_Degree.setText(slat.substring(1, 3));
jText_Lat_Minute.setText(slat.substring(3, 5));
jText_lat_second.setText(slat.substring(5, 7));
jText_lat_PerSecond.setText(slat.substring(7, 9));
}
catch (Exception ex) {
ZSCom_Func.showErrorMessageDlg(this, "不合法的经纬度载入", "提示");
}
/*(String)JCombo_Long.getSelectedItem()
+JText_Long_Degree
+JTEXT_Long_Minute
+jText_Long_Second
+jText_Long_PerSecond;
}*/
}
/**
获得纬度,9位格式
*/
public String getLatStr() {
if (Check()) {
String m_tmpstr;
m_tmpstr = (String) JCombo_Lat.getSelectedItem()
+ JText_Lat_Degree.getText()
+ jText_Lat_Minute.getText()
+ jText_lat_second.getText()
+ jText_lat_PerSecond.getText();
if (m_tmpstr.equals("N00000000")) {
return "";
}
else return m_tmpstr;
}
else {
return "";
}
}
/**
校验经纬度
*/
public boolean Check() {
if (check_Long_Degree() && check_Lat_Degree() &&
check_Long_Minute() && check_Lat_Minute() &&
check_Long_Second() && check_Lat_Second() &&
check_Long_PerSecond() && check_Lat_PerSecond()) {
return true;
}
else {
return false;
}
}
boolean check_Long_Degree() {
int ilong;
//合法的经度否?
if (ZSCom_Func.checkIntValue(JText_Long_Degree.getText().trim())) {
ilong = ZSCom_Func.StringToInt(JText_Long_Degree.getText().trim());
if (ilong >= 0 && ilong <= 180) {
//转换为正确格式,位数不够左边加0
JText_Long_Degree.setText(ZSCom_Func.addleftchar(JText_Long_Degree.
getText().trim(), 3, '0'));
/*
if (ilong==0)
{
JText_Long_Degree.setText("000");
}
if (ilong<100&&ilong>=10)
{
JText_Long_Degree.setText("0"+ZSCom_Func.IntToString(ilong));
}
if (ilong<10&&ilong>0)
{
JText_Long_Degree.setText("00"+ZSCom_Func.IntToString(ilong));
}
*/
return true;
}
else {
ZSCom_Func.showErrorMessageDlg(this, "经度值应在0到180之间", "提示"); //设计总是显示在最上端的对话框
return false;
}
}
else {
return false;
}
}
boolean check_Long_Minute() {
int iMinute;
{
if (JTEXT_Long_Minute.getText().trim().equals("")) {
JTEXT_Long_Minute.setText("00");
return true;
}
}
//合法的经度否?
if (ZSCom_Func.checkIntValue(JTEXT_Long_Minute.getText().trim())) {
iMinute = ZSCom_Func.StringToInt(JTEXT_Long_Minute.getText().trim());
if (iMinute >= 0 && iMinute <= 60) {
//转换为正确格式,位数不够左边加0
JTEXT_Long_Minute.setText(ZSCom_Func.addleftchar(JTEXT_Long_Minute.
getText().trim(), 2, '0'));
/*
if (iMinute<10)
{
JTEXT_Long_Minute.setText("0"+ZSCom_Func.IntToString(iMinute));
}
*/
return true;
}
else {
ZSCom_Func.showErrorMessageDlg(this, "经度分应在0到60之间", "提示"); //设计总是显示在最上端的对话框
return false;
}
}
else {
return false;
}
}
boolean check_Long_Second() {
int iSecond;
{
if (jText_Long_Second.getText().trim().equals("")) {
jText_Long_Second.setText("00");
return true;
}
}
//合法的经度否?
if (ZSCom_Func.checkIntValue(jText_Long_Second.getText().trim())) {
iSecond = ZSCom_Func.StringToInt(jText_Long_Second.getText().trim());
if (iSecond >= 0 && iSecond <= 60) {
//转换为正确格式,位数不够左边加0
jText_Long_Second.setText(ZSCom_Func.addleftchar(jText_Long_Second.
getText().trim(), 2, '0'));
/*if (iSecond<10)
{
jText_Long_Second.setText("0"+ZSCom_Func.IntToString(iSecond));
}
*/
return true;
}
else {
ZSCom_Func.showErrorMessageDlg(this, "经度秒应在0到60之间", "提示"); //设计总是显示在最上端的对话框
return false;
}
}
else {
return false;
}
}
boolean check_Long_PerSecond() {
int iPerSecond;
{
if (jText_Long_PerSecond.getText().trim().equals("")) {
jText_Long_PerSecond.setText("00");
return true;
}
}
//合法的经度否?
if (ZSCom_Func.checkIntValue(jText_Long_PerSecond.getText().trim())) {
iPerSecond = ZSCom_Func.StringToInt(jText_Long_PerSecond.getText().trim());
if (iPerSecond >= 0 && iPerSecond <= 99) {
//转换为正确格式,位数不够左边加0
jText_Long_PerSecond.setText(ZSCom_Func.addleftchar(
jText_Long_PerSecond.getText().trim(), 2, '0'));
/*
if (iPerSecond<10)
{
jText_Long_PerSecond.setText("0"+ZSCom_Func.IntToString(iPerSecond));
}
*/
return true;
}
else {
ZSCom_Func.showErrorMessageDlg(this, "经度百分之一秒应在0到99之间", "提示"); //设计总是显示在最上端的对话框
return false;
}
}
else {
return false;
}
}
boolean check_Lat_Degree() {
int ilat;
//合法的经度否?
if (ZSCom_Func.checkIntValue(JText_Lat_Degree.getText().trim())) {
ilat = ZSCom_Func.StringToInt(JText_Lat_Degree.getText().trim());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -