Else
Public void actionPerformed(ActionEvent ae)
{
String s,s1;
int k;
k=ch.getSelectedIndex();
s=" ";
s=(String)ch.getSelectedItem();
s=s+" ";
s1=Integer.toString(k);
s=s+s1;
lb.setText(s);
}
});
form.addComponent(ch);
tf = new TextField();
tf.setX(20);
tf.setY(10);
tf.setText("");
form.addComponent(tf);
lb = new Label();
lb.setX(10);
lb.setY(70);
lb.setText(" ");
form.addComponent(lb);
bt=new Button();
bt.setX(20);
bt.setY(40);
bt.setText("Добавить");
bt.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
String s;
int k;
s=tf.getText();
if(cb.isSelected()==true)
{
jl.addItem(s);
// lm.removeItem(0); // удаление
// lm.addItemAtIndex(s, 2); // вставка
k=lm.getSize();
lm.setSelectedIndex(k-1);
}
{
ch.addItem(s);
// lm2.removeItem(0); // удаление
// lm2.addItemAtIndex(s, 2); // вставка
}
}
});
form.addComponent(bt);
cb=new CheckBox();
cb.setX(20);
cb.setY(100);
cb.setText("ListBox");
cb.setSelected(true);
form.addComponent(cb);
form.show();
}
public void pauseApp()
{
}
public void destroyApp(boolean unconditional)
{
}
}
Для выделения цветом выбранной строки класс Style
4) Чтение и запись файла
SE:
Файл inp.txt находится в папке проекта, например, (D:\javawork\eclipse\Prog_3_2\)в строчку записаны числа:
1 2 3 4 5
Считываются в массив Ar, Size в итоге равна числу чисел (5).
В tf1 вводится имя файла, кнопка bt запускает чтение файла
|
|
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.Math. *;
import java.io.FileInputStream;
import java.io.*;
import java.util.Scanner;
import java.io.IOException;
import javax.swing.*;
public class Prog_3_2
{
int Ar[]=new int[30]; // массив для чтения Ar[30] – нельзя!
int Size; // итоговое количество чисел
JFrame form;
JTextField tf1; // поле ввода имени файла
JButton bt; // кнопка запуска чтения файла
Prog_3_2 ()
{
form = new JFrame();
form.setSize (500,300);
form.setTitle ("лабораторная 3");
form.setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE);
form.setLayout(null);
tf1 = new JTextField();
tf1.setBounds(20,10,140,20);
tf1.setText("");
form.add(tf1);
bt= new JButton();
bt.setBounds(20,50,140,20);
bt. setLabel ("Загрузить");
form.add(bt);
bt.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
Load(); // загрузка в Ar чисел из файла
}
});
form. show ();
}
public void Load()
{
String s,s1;
s=tf1.getText(); // имя файла в текстовом поле
try // чтение с проверкой ошибок
{
Scanner sc = new Scanner(new File(s)); // сканер для чтения файла
Size=0;
while(sc.hasNext()) // пока не конец файла
{
Ar[Size]=sc.nextInt(); // следующее целое
Size++;
}
sc.close();
}
catch (FileNotFoundException e) // ошибка не найден файл
{
tf1.setText("Файл не найден");
return;
}
catch(Exception ex) // остальные ошибки – неправильное число
{
s1=Integer.toString(Size);
s="Не число: "+"Size="+s1;
tf1.setText(s);
return;
}
}
public static void main (String args[])
{
Prog_3_2 f;
f= new Prog_3_2();
}
}
Size=5 Ar[0]=1,..., Ar[4]=5
Если набрать input.txt, появится ‘файл не найден’
Если в файле 1 2 y3 4 5, появится 'не число Size=2'
catch(Exception ex) -> catch (InputMisMatchException e)
При чтении строк файла замены:
String Ar[]= new String[30];
Ar [Size]=sc.nextInt(); -> Ar[Size]=sc.nextLine();
убирается проверка ошибки на числа
//catch(Exception ex)
// {
// s1=Integer.toString(Size);
// s=" Нечисло: "+"Size="+s1;
// tf1.setText(s);
// }
Запись в файл
import java.awt.event.ActionEvent;
|
|
import java.awt.event.ActionListener;
import java.lang.Math. *;
import java.io.FileInputStream;
import java.io.*;
import java.util.Scanner;
import java.io.IOException;
import java.io.FileWriter;
import java.io.PrintWriter;
import javax.swing.*;
public class Prog_3_2
{
int Ar[]= new int [30]; // массивдлячтенияAr [30] – нельзя!
int Size; // итоговоеколичествочисел
JFrame form;
JTextField tf1;
JButton bt;
JButton bt2; // кнопказапускасохраненияфайла
Prog_3_2 ()
{
form = new JFrame();
form.setSize (500,300);
form.setTitle ("лабораторная 3");
form.setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE);
form.setLayout(null);
tf1 = new JTextField();
tf1.setBounds(20,10,140,20);
tf1.setText("");
form.add(tf1);
bt= new JButton();
bt.setBounds(20,50,140,20);
bt. setLabel ("Загрузить");
form.add(bt);
bt.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
Load();
}
});
bt2=new JButton();
bt2.setBounds(20,80,140,20);
bt2. setLabel ("Сохранить");
form.add(bt2);
bt2.addActionListener(new ActionListener()
{