亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? doublearrayeditorpanel.java

?? java核心技術源碼
?? JAVA
字號:
/**
   @version 1.20 1999-09-28
   @author Cay Horstmann
*/

package com.horstmann.corejava;

import java.awt.*;
import java.awt.event.*;
import java.text.*;
import java.lang.reflect.*;
import java.beans.*;
import javax.swing.*;
import javax.swing.event.*;

/**
   The panel inside the DoubleArrayEditor. It contains
   a list of the array values, together with buttons to
   resize the array and change the currently selected list value.
*/
public class DoubleArrayEditorPanel extends JPanel
{
   public DoubleArrayEditorPanel(PropertyEditorSupport ed)
   {
      editor = ed;
      setArray((double[])ed.getValue());

      setLayout(new GridBagLayout());

      add(sizeField, new GBC(0, 0, 1, 1).setWeight(100, 0).setFill(GBC.HORIZONTAL));
      add(valueField, new GBC(0, 1, 1, 1).setWeight(100, 0).setFill(GBC.HORIZONTAL));
      add(sizeButton, new GBC(1, 0, 1, 1).setWeight(100, 0));
      add(valueButton, new GBC(1, 1, 1, 1).setWeight(100, 0));
      add(new JScrollPane(elementList), new GBC(0, 2, 2, 1).setWeight(100, 100).setFill(GBC.BOTH));

      sizeButton.addActionListener(new
         ActionListener()
         {
            public void actionPerformed(ActionEvent event) { changeSize(); }
         });

      valueButton.addActionListener(new
         ActionListener()
         {
            public void actionPerformed(ActionEvent event) { changeValue(); }
         });


      elementList.setSelectionMode(
         ListSelectionModel.SINGLE_SELECTION);

      elementList.addListSelectionListener(new
         ListSelectionListener()
         {
            public void valueChanged(ListSelectionEvent event)
            {
               int i = elementList.getSelectedIndex();
               if (i < 0) return;
               valueField.setText("" + array[i]);
            }
         });

      elementList.setModel(model);
      elementList.setSelectedIndex(0);
   }

   /**
      This method is called when the user wants to change
      the size of the array.
   */
   public void changeSize()
   {
      fmt.setParseIntegerOnly(true);
      int s = 0;
      try
      {
         s = fmt.parse(sizeField.getText()).intValue();
         if (s < 0) throw new ParseException("Out of bounds", 0);
      }
      catch (ParseException e)
      {
         JOptionPane.showMessageDialog(this, "" + e, "Input Error", JOptionPane.WARNING_MESSAGE);
         sizeField.requestFocus();
         return;
      }
      if (s == array.length) return;
      setArray((double[]) arrayGrow(array, s));
      editor.setValue(array);
      editor.firePropertyChange();
   }

   /**
      This method is called when the user wants to change
      the currently selected array value.
   */
   public void changeValue()
   {
      double v = 0;
      fmt.setParseIntegerOnly(false);
      try
      {
         v = fmt.parse(valueField.getText()).doubleValue();
      }
      catch (ParseException e)
      {
         JOptionPane.showMessageDialog(this, "" + e, "Input Error", JOptionPane.WARNING_MESSAGE);
         valueField.requestFocus();
         return;
      }
      int currentIndex = elementList.getSelectedIndex();
      setArray(currentIndex, v);
      editor.firePropertyChange();
   }

   /**
      Sets the indexed array property.
      @param v the array to edit
   */
   public void setArray(double[] v)
   {
      if (v == null) array = new double[0];
      else array = v;
      model.setArray(array);
      sizeField.setText("" + array.length);
      if (array.length > 0)
      {
         valueField.setText("" + array[0]);
         elementList.setSelectedIndex(0);
      }
      else
         valueField.setText("");
   }

   /**
      Gets the indexed array property.
      @return the array being edited
   */
   public double[] getArray()
   {
      return (double[]) array.clone();
   }

   /**
      Sets the indexed array property.
      @param i the index whose value to set
      @param value the new value for the given index
   */
   public void setArray(int i, double value)
   {
      if (0 <= i && i < array.length)
      {
         model.setValue(i, value);
         elementList.setSelectedIndex(i);
         valueField.setText("" + value);
      }
   }

   /**
      Gets the indexed array property.
      @param i the index whose value to get
      @return the value at the given index
   */
   public double getArray(int i)
   {
      if (0 <= i && i < array.length) return array[i];
      return 0;
   }

   /**
      Resizes an array
      @param a the array to grow
      @param newLength the new length
      @return an array with the given length and the same
      elements as a in the common positions
   */
   private static Object arrayGrow(Object a, int newLength)
   {
      Class cl = a.getClass();
      if (!cl.isArray()) return null;
      Class componentType = a.getClass().getComponentType();
      int length = Array.getLength(a);

      Object newArray = Array.newInstance(componentType, newLength);
      System.arraycopy(a, 0, newArray, 0, Math.min(length, newLength));
      return newArray;
   }

   private PropertyEditorSupport editor;
   private double[] array;
   private NumberFormat fmt = NumberFormat.getNumberInstance();
   private JTextField sizeField = new JTextField(4);
   private JTextField valueField = new JTextField(12);
   private JButton sizeButton = new JButton("Resize");
   private JButton valueButton = new JButton("Change");
   private JList elementList = new JList();
   private DoubleArrayListModel model = new DoubleArrayListModel();
}

/**
   The list model for the element list in the editor.
*/
class DoubleArrayListModel extends AbstractListModel
{
   public int getSize() { return array.length; }
   public Object getElementAt(int i) { return "[" + i + "] " + array[i]; }

   /**
      Sets a new array to be displayed in the list.
      @param a the new array
   */
   public void setArray(double[] a)
   {
      int oldLength = array == null ? 0 : array.length;
      array = a;
      int newLength = array == null ? 0 : array.length;
      if (oldLength > 0) fireIntervalRemoved(this, 0, oldLength);
      if (newLength > 0) fireIntervalAdded(this, 0, newLength);
   }

   /**
      Changes a value in the array to be displayed in the list.
      @param i the index whose value to change
      @param value the new value for the given index
   */
   public void setValue(int i, double value)
   {
      array[i] = value;
      fireContentsChanged(this, i, i);
   }

   private double[] array;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合一个色综合亚洲| 午夜视频在线观看一区二区三区| 91原创在线视频| 亚洲欧美另类小说视频| 欧美日韩国产精品成人| 国产伦精品一区二区三区免费迷| 日本一区二区成人| 91麻豆国产香蕉久久精品| 日韩黄色免费电影| 国产精品卡一卡二| 99久久er热在这里只有精品66| 亚洲国产视频直播| 中文字幕一区二区三区视频| 日韩欧美中文字幕制服| 7777精品伊人久久久大香线蕉完整版| av一二三不卡影片| 粉嫩13p一区二区三区| 久久精品国产免费| 美国精品在线观看| 91在线观看地址| 国产成人一区二区精品非洲| 久久成人18免费观看| 天涯成人国产亚洲精品一区av| 成人免费在线播放视频| 国产精品色在线| 国产亚洲欧美日韩日本| 久久久久久久综合色一本| 日韩三级中文字幕| 久久嫩草精品久久久精品一| 久久这里只精品最新地址| 欧美一区二区三区精品| 日韩精品在线一区| 精品美女一区二区三区| 日韩一区二区高清| 国产午夜精品一区二区三区视频 | 久久精品视频免费| 国产精品天天摸av网| 国产精品国产三级国产普通话蜜臀| 中文字幕在线不卡一区二区三区| 久久人人爽爽爽人久久久| 欧美—级在线免费片| 亚洲乱码国产乱码精品精的特点| 亚洲地区一二三色| 国产美女娇喘av呻吟久久| 成人天堂资源www在线| 欧美丝袜丝nylons| 日韩精品自拍偷拍| 亚洲视频图片小说| 激情综合色播五月| 国产一区二区三区观看| 成人高清视频在线| 欧美久久久影院| 国产精品人成在线观看免费| 亚洲国产欧美一区二区三区丁香婷| 国产精品中文字幕欧美| 日韩三级高清在线| 青青草精品视频| 6080yy午夜一二三区久久| 亚洲美女少妇撒尿| 91在线丨porny丨国产| 国产精品伦理在线| 丁香六月综合激情| 日韩成人精品在线| 欧美日韩一二区| 亚洲成人在线网站| 日韩一级精品视频在线观看| 日本在线观看不卡视频| 欧美一区二区三区视频在线观看 | 国产一区二区美女诱惑| 亚洲精品在线三区| 国产成人高清视频| 最好看的中文字幕久久| 91丨porny丨中文| 亚洲第一福利视频在线| 91精品国产乱| 精品无人码麻豆乱码1区2区| 精品国产亚洲在线| 成人综合在线视频| 洋洋成人永久网站入口| 91麻豆精品国产91久久久久久| 日韩激情一区二区| 欧美国产精品一区二区| 一本色道久久综合亚洲精品按摩| 肉肉av福利一精品导航| 久久网站最新地址| 色久优优欧美色久优优| 蜜桃精品在线观看| 中文字幕中文字幕在线一区| 欧美性猛片xxxx免费看久爱| 精品亚洲aⅴ乱码一区二区三区| 国产精品伦理在线| 欧美一区二区三区啪啪| 色综合色综合色综合| 在线精品视频一区二区| 青青草视频一区| 亚洲欧美一区二区三区久本道91| 欧美一区二区三区不卡| 91丝袜呻吟高潮美腿白嫩在线观看| 爽好多水快深点欧美视频| 亚洲国产高清不卡| 久久综合中文字幕| 欧美日韩国产综合草草| 97se亚洲国产综合在线| 国产专区欧美精品| 婷婷综合另类小说色区| 亚洲欧美精品午睡沙发| 国产亚洲婷婷免费| 日韩一区二区免费电影| 欧美精品日韩综合在线| 91成人网在线| 91色乱码一区二区三区| 成人午夜在线免费| 国产高清视频一区| 国产麻豆精品久久一二三| 爽好多水快深点欧美视频| 日精品一区二区| 奇米精品一区二区三区在线观看| 日韩一区精品视频| 免费成人在线影院| 黄色日韩网站视频| 狠狠色丁香婷婷综合| 粉嫩一区二区三区在线看| 高清日韩电视剧大全免费| 成人黄色片在线观看| 91免费观看在线| 欧美日韩一区二区三区四区 | 美女脱光内衣内裤视频久久网站 | aaa亚洲精品| 欧美偷拍一区二区| 欧美大黄免费观看| 中文字幕巨乱亚洲| 亚洲制服丝袜一区| 久久精品国产久精国产爱| 99精品在线观看视频| 欧美日韩国产经典色站一区二区三区| 91麻豆精品国产自产在线| 久久午夜色播影院免费高清| 国产精品电影院| 男女男精品视频网| 波多野结衣91| 日韩欧美精品在线视频| 综合av第一页| 国产成人一区在线| 69久久99精品久久久久婷婷 | 久久99精品国产.久久久久久 | 一区二区三区日韩欧美| 激情文学综合丁香| 欧美午夜精品免费| 中文字幕一区在线| 精品系列免费在线观看| 欧美日韩一二三| 亚洲视频一二三| 国产高清不卡一区| 精品国产乱码久久久久久蜜臀 | 国内国产精品久久| 欧美日韩国产高清一区二区| 日韩一区在线看| 国产东北露脸精品视频| 日韩三级中文字幕| 奇米影视一区二区三区小说| 在线观看网站黄不卡| 亚洲欧美日韩在线| caoporm超碰国产精品| 中文字幕av一区 二区| 国产不卡在线一区| 国产欧美一区二区三区网站| 韩国v欧美v日本v亚洲v| 久久久精品日韩欧美| 久久国产精品99精品国产| 日韩欧美久久一区| 狠狠色丁香久久婷婷综合_中| 日韩美女主播在线视频一区二区三区| 亚洲国产va精品久久久不卡综合| 欧美中文字幕亚洲一区二区va在线| 中文字幕在线观看一区| 色综合色综合色综合色综合色综合| 国产一区二区三区不卡在线观看| 日韩欧美国产综合一区 | 91国产丝袜在线播放| 亚洲第一二三四区| 日韩欧美激情四射| 大桥未久av一区二区三区中文| 亚洲人成网站色在线观看 | 777欧美精品| 国产美女一区二区三区| 中文字幕欧美一| 91精品国产色综合久久| 粉嫩av一区二区三区在线播放 | 欧美午夜不卡在线观看免费| 久久不见久久见免费视频1| 国产精品成人一区二区三区夜夜夜| 日本电影亚洲天堂一区| 精品一区二区在线观看| 亚洲欧美区自拍先锋| 这里只有精品免费| 欧美综合亚洲图片综合区| 久久精品国产成人一区二区三区 | 欧美最新大片在线看| 国产999精品久久久久久| 石原莉奈一区二区三区在线观看|