Ловится только неправильные числа

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()

{


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: