powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите пожалуйста; Java Swing телефонный справочник
10 сообщений из 10, страница 1 из 1
Помогите пожалуйста; Java Swing телефонный справочник
    #38935723
Carelian88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача - написать телефонный справочник. Информация хранится в двух текстовых файлах, в одном имена, во втором номера телефонов. Почти месяц решал проблему с кириллицей, написал кое-как, по отдельности сам справочник работает при заданных в программе массивах имён и номеров, но надо его переделать на чтение из файлов. На промежуточной стадии у меня ошибки, может кто невооруженным глазом сразу подскажет в чём проблема? Я новичок.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
import javax.swing.*;
import java.awt.*;
import javax.swing.event.*;
import java.awt.event.*;
import java.io.*;
class Filetst{
public  static String[] fileo() throws Exception{
	String names[];
	String str=" ";
	try{
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("data.txt"), "windows-1251"));
         while ((str = br.readLine()) != null) {
            str = str + br.readLine();
			} 
		}catch(Exception e){
         e.printStackTrace();
		}			
names=str.split(":");
return names;
}
}

class frm implements ListSelectionListener{

JList<String> jl;
JLabel jlabstat;
JLabel jlab;
JScrollPane jscp;


frm(){
	


JFrame frame = new JFrame("Phone");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 350);
frame.setLayout(new FlowLayout());

jl = new JList<String>(n);
jl.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jscp = new JScrollPane(jl);
jscp.setPreferredSize(new Dimension(120,200));
jlabstat = new JLabel("Выберите имя:");
jlab = new JLabel(" ");
jl.addListSelectionListener(this);
frame.add(jlabstat);
frame.add(jscp);
frame.add(jlab);
frame.setVisible(true);
}
	
   String[] n = Filetst.fileo();
	

public void valueChanged(ListSelectionEvent le) {

int idx = jl.getSelectedIndex();

if(idx!=-1) jlab.setText("<html><b><font size='5'>"+n[idx]+"</font></b><hr></html>");
}


public static void main(String args[]){
EventQueue.invokeLater(new Runnable(){public void run()
{
new frm();
}

});
}

}




идея в том что-бы функция читала массив имён в файле и из этого автоматически генерировала JList, а его обработчик событий в JLable показывал номера.
...
Рейтинг: 0 / 0
Помогите пожалуйста; Java Swing телефонный справочник
    #38935748
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Банальное отсутствие форматирование и следования какому-либо Coding Convention отбивает все желание читать код. Вы бы хоть проблемы озвучили.
...
Рейтинг: 0 / 0
Помогите пожалуйста; Java Swing телефонный справочник
    #38935764
Carelian88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Код: java
1.
2.
3.
frm.java:53: error: unreported exception Exception; must be caught or declared
o be thrown
   String[] n = Filetst.fileo();



такое впечатление что оно хочет что-бы я try catch в каждую строку поместил(
содержимое data.txt: Игорь:Вера:Воля:Мама
...
Рейтинг: 0 / 0
Помогите пожалуйста; Java Swing телефонный справочник
    #38935767
Carelian88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Carelian88,

если на мгновенье забыть про этот класс:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
class Filetst{
public  static String[] fileo() throws Exception{
	String names[];
	String str=" ";
	try{
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("data.txt"), "windows-1251"));
         while ((str = br.readLine()) != null) {
            str = str + br.readLine();
			} 
		}catch(Exception e){
         e.printStackTrace();
		}			
names=str.split(":");
return names;
}
}



дальше идёт конструтор основного класса, как мне в конструктор основного класса втулить переменную массив names?
...
Рейтинг: 0 / 0
Помогите пожалуйста; Java Swing телефонный справочник
    #38935768
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Carelian88,

Ах, оно ещё даже не компилируется. Ну в Runnable нужно try catch добавить. А можно просто перейти на RuntimeException чтобы везде не объявлять.
throws Exception по-моему вообще можно выкинуть, уже ведь IOException отловлен.
В целом код - набор граблей.
...
Рейтинг: 0 / 0
Помогите пожалуйста; Java Swing телефонный справочник
    #38935794
Carelian88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

дело в том что без throws exception не получится сделать это: BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("data.txt"), "windows-1251"));

а так бы я это засунул бы в конструктор без отдельного класса
...
Рейтинг: 0 / 0
Помогите пожалуйста; Java Swing телефонный справочник
    #38935801
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Carelian88дело в том что без throws exception не получится сделать это: BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("data.txt"), "windows-1251"));

Вы заблуждаетесь. У вас уже try...catch присутствует.
...
Рейтинг: 0 / 0
Помогите пожалуйста; Java Swing телефонный справочник
    #38935822
Carelian88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

переписал код, убрал дополнительный класс и соответственно throws Exception

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
import javax.swing.*;
import java.awt.*;
import javax.swing.event.*;
import java.awt.event.*;
import java.io.*;


	

class frm implements ListSelectionListener{

JList<String> jl;
JLabel jlabstat;
JLabel jlab;
JScrollPane jscp;
String names[];
String str=null;

frm(){
	
	try{
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("data.txt"), "windows-1251"));
         while ((str = br.readLine()) != null) {
            str = str + br.readLine();
			} 
		}catch(Exception e){}			
names=str.split(":");

	


JFrame frame = new JFrame("Phone");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(200, 350);
frame.setLayout(new FlowLayout());

jl = new JList<String>(names);
jl.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
jscp = new JScrollPane(jl);
jscp.setPreferredSize(new Dimension(120,200));
jlabstat = new JLabel("Выберите имя:");
jlab = new JLabel(" ");
jl.addListSelectionListener(this);
frame.add(jlabstat);
frame.add(jscp);
frame.add(jlab);
frame.setVisible(true);
}
public void valueChanged(ListSelectionEvent le) {

int idx = jl.getSelectedIndex();

if(idx!=-1) jlab.setText("<html><b><font size='5'>"+names[idx]+"</font></b><hr></html>");
}


public static void main(String args[]){
EventQueue.invokeLater(new Runnable(){public void run(){new frm();}

});
}

}



компиляция норм при запуске:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
        at frm.<init>(frm.java:27)
        at frm$1.run(frm.java:58)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$500(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Sour
ce)
        at java.awt.EventQueue.dispatchEvent(Unknown Source)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
        at java.awt.EventDispatchThread.run(Unknown Source)
...
Рейтинг: 0 / 0
Помогите пожалуйста; Java Swing телефонный справочник
    #38935830
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Научитесь пользоваться дебаггером.
Отложите в сторону проект и займитесь чтением книг и уроков. NullPointerException это основа работы с объектами и ссылками в Java.
...
Рейтинг: 0 / 0
Помогите пожалуйста; Java Swing телефонный справочник
    #38935834
Carelian88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz,

Спасибо.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите пожалуйста; Java Swing телефонный справочник
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]