Этот совет 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[i] = new 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));
}
}
}
}
|
|
|
Вы можете открыть тот же файл для чтения, а также чтение в использовании 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 показывает, как создать простой анимации с использованием краски (график г) метод и нитки.

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(200, 200);
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 класс является конкретной реализацией интерфейса 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»...Последняя »