Как реализовать графический Mo список выбора

graphical list selection monitor

Этот совет Java Swing иллюстрирует метод реализации графический монитор список выбора. Это включает в себя слушателю, что в ответ на события и соответственно обновляет кнопок.


import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.swing.event.*;



public class SelectionMonitor extends JPanel {

    

    String label[] "Zero","One","Two","Three","Four","Five","Six",

    "Seven","Eight","Nine","Ten","Eleven","Twelve" };

    

    JCheckBox checks[] new JCheckBox[label.length];

    JList list;

    

    public SelectionMonitor() {

        

        setLayout(new BorderLayout());

        

        list = new JList(label);

        JScrollPane pane = new JScrollPane(list);

        

        //  Format the list and the buttons in a vertical box

        Box rightBox = new Box(BoxLayout.Y_AXIS);

        Box leftBox = new Box(BoxLayout.Y_AXIS);

        

        //  Monitor all list selections

        list.addListSelectionListener(new RadioUpdater());

        

        for(int i=0; i < label.length; i++) {

            checks[inew JCheckBox("Selection " + i);

            checks[i].setEnabled(false);

            rightBox.add(checks[i]);

        }

        

        leftBox.add(pane);

        add(rightBox, BorderLayout.EAST);

        add(leftBox, BorderLayout.WEST);

    }

    

    public static void main(String s[]) {

        

        JFrame frame = new JFrame("Selection Monitor");

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        frame.setContentPane(new SelectionMonitor());

        frame.pack();

        frame.setVisible(true);

        

    }

    

    // Inner class that responds to selection events to update the buttons

    class RadioUpdater implements ListSelectionListener {

        

        public void valueChanged(ListSelectionEvent e) {

            //  If either of these are true, the event can be ignored.

            if ((!e.getValueIsAdjusting()) || (e.getFirstIndex() == -1))

                return;

            

            //  Change the radio button to match the current selection state

            //  for each list item that reported a change.

            for (int i = e.getFirstIndex(); i <= e.getLastIndex(); i++) {

                checks[i].setSelected(

                        ((JList)e.getSource()).isSelectedIndex(i));

            }

        }

    }

}

Как я могу открыть тот же файл для чтения, а также WR

Вы можете открыть тот же файл для чтения, а также чтение в использовании Java RandomAccessFile класс. RandomAccessFile класс поддерживает одновременное чтение и запись из / в том же файле, если открыть файл в режиме "РАО":


RandomAccessFile raf = 

    new RandomAccessFile("filename.txt""rw");

Получить последние обновления из файла

Просто используйте Lastmodified () методом из объектных файлов. но возвращаемого значения зависит от системы и должно быть использовано только для сравнения с другими значениями возвращается последнего изменения. Оно не должно быть истолковано как абсолютного времени.


String s1 = "file1.dat";

String s2 = "file2.dat";



File f1 = new File(s1);

File f2 = new File(s2);



if (f1.lastModified() < f2.lastModified())

   System.out.println(s1 + " is older than " + s2);

Как установить подсказки

Это Java советы иллюстрирует метод настройки всплывающей подсказке. Разработчик может использовать этот совет сделать интерфейс пользователя friendly.If JComponent таких как JButton создается с помощью действий, компонент будет создан с подсказкой текста в действие (см. e855 Создание действий). Однако, если такой иск не имеет текста подсказки или если оно должно быть изменено, используя JComponent.setToolTipText () используется.


    JComponent button = new JButton("Label");

    

    // Set tool tip text

    button.setToolTipText("tool tip text");

Как создать анимацию краска и нитки

Этот совет Java показывает, как создать простой анимации с использованием краски (график г) метод и нитки.



java.awt



import java.awt.Color;

import java.awt.Graphics;

import java.awt.Insets;

import java.util.Timer;

import java.util.TimerTask;



import javax.swing.JFrame;



public class Animate extends JFrame {



  private static int DELAY = 100;



  Insets insets;



  Color colors[] Color.RED, Color.ORANGE, Color.YELLOW, Color.GREEN,

      Color.BLUE, Color.MAGENTA };



  public void paint(Graphics g) {

    super.paint(g);

    if (insets == null) {

      insets = getInsets();

    }

    // Calculate each time in case of resize

    int x = insets.left;

    int y = insets.top;

    int width = getWidth() - insets.left - insets.right;

    int height = getHeight() - insets.top - insets.bottom;

    int start = 0;

    int steps = colors.length;

    int stepSize = 360 / steps;

    synchronized (colors) {

      for (int i = 0; i < steps; i++) {

        g.setColor(colors[i]);

        g.fillArc(x, y, width, height, start, stepSize);

        start += stepSize;

      }

    }

  }



  public void go() {

    TimerTask task = new TimerTask() {

      public void run() {

        Color c = colors[0];

        synchronized (colors) {

          System.arraycopy(colors, 1, colors, 0, colors.length - 1);

          colors[colors.length - 1= c;

        }

        repaint();

      }

    };

    Timer timer = new Timer();

    timer.schedule(task, 0, DELAY);

  }



  public static void main(String args[]) {

    Animate f = new Animate();

    f.setSize(200200);

    f.show();

    f.go();

  }

}

Имитации мыши и нажатия клавиш

В следующем примере показано, как моделировать мыши и нажатия клавиш в использовании Java java.awt.Robot класс.


try {

    Robot robot = new Robot();

    

    // Simulate a mouse click

    robot.mousePress(InputEvent.BUTTON1_MASK);

    robot.mouseRelease(InputEvent.BUTTON1_MASK);

    

    // Simulate a key press

    robot.keyPress(KeyEvent.VK_A);

    robot.keyRelease(KeyEvent.VK_A);

catch (AWTException e) {

    e.printStackTrace();

}

Как использовать HashSet

HashSet класс является конкретной реализацией интерфейса Set. Она создает коллекцию, которая использует хэш-таблицу для хранения. Хеш-таблица хранит информацию с помощью механизма, называемого хеширования. В хеширование, информационное содержание ключ используется для определения уникальной ценности, называемое его хэш-код. Хранятся хэш-код затем используется в качестве индекса, при которой данные, связанные с ключом. Преобразование ключа в своем хэш-код выполняется автоматически. Вы никогда не увидите хэш-код. Преимущество хэширования является то, что она позволяет время выполнения основных операций, таких, как добавить (), содержит (), Remove (), и размер () будет оставаться неизменной, даже для больших объемов.

HashSet не синхронизированы. Если более одного потока хочет получить к нему доступ в то же время оно должно быть синхронизирован извне.

Этот код показывает использование HashSet. Это позволит определить количество дублированных слов в строке. Строка передается в качестве аргументов командной строки.

Добавить () Метод HashSet добавить объект в хранилище, если она еще не создана.


import java.util.*;



public class FindDups {



  public static void main(String[] args) {

  

    Set s = new HashSet();



    for(int i=0; i<args.length;i++){

      if(!s.add(args[i]))

        System.out.println("Duplicate detected : " + args[i]);

    }



    System.out.println(s.size() " distinct words detected : " + s );

  }

}

Запуск программы: C: \\> Java FindDups я пришел я пришел и завоевал

Вывод на экран:

Duplicate detected: i
Duplicate detected: i
4 distinct words detected : [came,saw,conquered,i]

Как распаковка массива байт

Этот совет Java приведен пример декомпрессии массив байтов. Разработчик может распаковывает байтовый массив, сжатые с помощью класса Deflater.


    // Create the decompressor and give it the data to compress

    Inflater decompressor = new Inflater();

    decompressor.setInput(compressedData);

    

    // Create an expandable byte array to hold the decompressed data

    ByteArrayOutputStream bos = new ByteArrayOutputStream(compressedData.length);

    

    // Decompress the data

    byte[] buf = new byte[1024];

    while (!decompressor.finished()) {

        try {

            int count = decompressor.inflate(buf);

            bos.write(buf, 0, count);

        catch (DataFormatException e) {

        }

    }

    try {

        bos.close();

    catch (IOException e) {

    }

    

    // Get the decompressed data

    byte[] decompressedData = bos.toByteArray();

Расписание задания Периодически

В некоторых приложений некоторых задач необходимо периодическое выполнение например GUI экран должен обновить данные с сервера периодически.

Это Java советы иллюстрации метода планирования задач на периодической основе. Разработчики могут использовать его для повторного применение метода в соответствии с их требованиями.

Для этой цели, сначала вы должны сделать класс расширения TimerTask абстрактный класс и писать код работать метод, вы хотите запустить многократного.


import java.util.TimerTask;



public class HeartBeatTask extends TimerTask{



  private int timerInterval;



  public HeartBeatTask(int timeInterval){

    this.timerInterval=timeInterval;

  }



  public void run() {

    // add the task here

  }



}

В вашей основной программы можно назвать настоящим Кодексом планировать задачи:


  java.util.Timer t1 = new java.util.Timer();



  HeartBeatTask tt = new HeartBeatTask(timeInterval);

  t1.schedule(tt, 0, timeInterval);

Теперь задача будет повторять за фиксированный промежуток времени.

Сделать банку исполняемого

В манифесте файл JAR, можно определить класс, которые будут использоваться при JVM является lauched с JAR в качестве параметра. Класс должен иметь основной ().

Попробуйте с этой простой класс:


import java.awt.*;

import java.awt.event.*;



public class MyClass {

 public static void main(String[] args) {

    Frame f = new Frame();

    f.addWindowListener

          (new WindowAdapter() {

              public void windowClosing(WindowEvent e) {

                 System.exit(0);

                 }

              }

    );

    f.add(new Label("Hello world"));

    f.setSize(200,200);

    f.setVisible(true);

   }

}

Затем создать этот файл манифеста (manifest.mft) с любым текстовым редактором.

Manifest-Version: 1.0
Main-Class: MyClass
Classpath: .\MyJar.jar

Далее, вы включите файл манифеста в банке (MyJar.jar) с MyClass класс.

jar cvfm MyJar.jar manifest.mft MyClass.class

Тогда вы сможете начать MyClass.class двойным щелчком по файлу MyJar.jar (если JRE правильно установлен), либо введя

java -jar MyJar.jar

В NT, вы можете также сделать JAR-запускать из командной строки, установив переменную PATHEXT окружающей среды, например

set PATHEXT=.EXE;.BAT;.CMD;.JAR

Тогда, если у вас есть банк файла MyJar.jar доступна через переменную окружения PATH, набрав "MyJar" на строку DOS команды будут ссылаться на "Java-Jar MyJar.jar".

Страница 1 из 612345»...Последняя »