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

📄 zslonglatedit.java

📁 java编写的经纬度度录入控件
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
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 + -