Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для SuLLeN
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855

Создание, удаление, сохранение и загрузка записей

15.03.2014, 18:37. Показов 950. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер!

Есть небольшое приложение с организованными:
Созданием записи, очисткой списка.
Не получается доработать нормальное удаление одной из записей, сохранение и загрузку...

Вот код:
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
import java.awt.*;
import java.awt.event.*;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.HashMap;
 
import javax.swing.*;
import javax.swing.event.*;
 
public class Lab_7 extends JFrame {
 
    private static final long serialVersionUID = 1L;
    private static HashMap<String, student> myHash = new HashMap<String, student>();
    final static DefaultListModel<String> myListModel = new DefaultListModel<String>();
    static JTextArea area = new JTextArea();
 
    public static class student {
        String adress;
        int age;
    }
    
    public static void main(String[] args) throws Exception {
        Lab_7 window = new Lab_7("Лабораторная №7");
        window.setVisible(true);
        window.pack();
        window.setMinimumSize(window.getSize());
    }
 
    public Lab_7(String s) {
        super(s);
        final JList<String> myList = new JList<String>();
        JScrollPane myScroll = new JScrollPane(myList);
        myList.setModel(myListModel);
        
        myList.addMouseListener(new MouseAdapter() {
            public void mousePressed(MouseEvent e) {
                myList.setSelectedIndex(myList.locationToIndex(e.getPoint()));
                area.setText("");
            }
        });
 
        myList.addListSelectionListener(new ListSelectionListener() {
            public void valueChanged(ListSelectionEvent e) {
                if (myList.getSelectedValue()!=null){
                String info = myHash.get(myList.getSelectedValue().toString()).adress
                        + "\n"
                        + myHash.get(myList.getSelectedValue().toString()).age;
                area.setText(info);
                }
            }
        });
 
        Box myBox = new Box(BoxLayout.Y_AXIS);
        Box myBox2 = new Box(BoxLayout.X_AXIS);
        Box myBox5 = new Box(BoxLayout.X_AXIS);
        final JLabel myLabel = new JLabel("Имя: ");
        myBox2.add(myLabel);
        final JTextField myText = new JTextField();
        myBox2.add(myText);
        Box myBox3 = new Box(BoxLayout.X_AXIS);
        final JLabel myLabel2 = new JLabel("Адрес: ");
        myBox3.add(myLabel2);
        final JTextField myText2 = new JTextField();
        myBox3.add(myText2);
        Box myBox4 = new Box(BoxLayout.X_AXIS);
        final JLabel myLabel3 = new JLabel("Возраст: ");
        myBox4.add(myLabel3);
        final JTextField myText3 = new JTextField();
        myText3.addKeyListener(new KeyAdapter() {
            public void keyReleased(KeyEvent e) {
                String s = myText3.getText();
                char[] ch = s.toCharArray();
                for (int i = 0; i < ch.length; i++)
                    if (!Character.isDigit(ch[i]))
                        s = s.replace(ch[i], ' ');
                myText3.setText(s.replace(" ", ""));
            }
        });
 
        myBox4.add(myText3);
        myBox.add(myBox2);
        myBox.add(myBox3);
        myBox.add(myBox4);
        Box box1 = new Box(BoxLayout.X_AXIS);
        JButton button1 = new JButton("Добавить в список");
        box1.add(button1);
        JButton button3=new JButton("Сохранить...");
        myBox5.add(button3);
        final FileDialog fdlg=new FileDialog(this, "");
        button1.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                myListModel.addElement(myText.getText());
                student a = new student();
                a.age = Integer.parseInt(myText3.getText());
                a.adress = myText2.getText();
                myHash.put(myText.getText(), a);
            }
        });
        JButton button2 = new JButton("Убрать из списка");
        button2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                while (myListModel.contains(myText.getText())) {
                    myListModel.removeElement(myText.getText());
                    myHash.remove(myText.getText());
                    area.setText("");
                }
            }
        });
        button3.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                fdlg.setMode(FileDialog.SAVE);
                fdlg.setTitle("Сохранить файл");
                fdlg.setVisible(true);
                FileWriter myWriter = null;
                try {
                    myWriter=new FileWriter(fdlg.getDirectory()+fdlg.getFile());
                    BufferedWriter myBWriter=new BufferedWriter(myWriter);
                    for(int i=0;i<myListModel.getSize();i++){
                        myBWriter.write(""+myListModel.getElementAt(i));
                        myBWriter.newLine();
                        myBWriter.write(""+myHash.get(e));
                    }
                    myBWriter.close();
                    myWriter.close();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }
        });
        myBox5.add(Box.createHorizontalGlue());
        JButton button4=new JButton("Загрузить...");
        button4.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                fdlg.setMode(FileDialog.LOAD);
                fdlg.setTitle("Загрузить файл");
                fdlg.setVisible(true);
                FileReader myReader = null;
                try {
                    myReader=new FileReader(fdlg.getDirectory()+fdlg.getFile());
                    myListModel.clear();
                    BufferedReader myBReader=new BufferedReader(myReader);
                    String s;
                    while ((s=myBReader.readLine())!=null){
                    myListModel.addElement(s);
                    }
                    myBReader.close();
                    myReader.close();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
            }
        });
        myBox5.add(button4);
        add(myBox5,BorderLayout.SOUTH);
        box1.add(button2);
        JButton buttonClear = new JButton("Очистить список");
        buttonClear.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                myListModel.clear();
                myHash=new HashMap<String, student>();
                area.setText("");
            }
        });
        box1.add(buttonClear);
        myBox.add(box1);
 
        Box centerBox = new Box(BoxLayout.X_AXIS);
        centerBox.add(myScroll);
        myScroll.setPreferredSize(new Dimension(200, 300));
        centerBox.add(area);
        add(centerBox, BorderLayout.CENTER);
        add(myBox, BorderLayout.NORTH);
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
15.03.2014, 18:37
Ответы с готовыми решениями:

Удаление и сохранение записей.
Доброго времени суток. И так есть функция которая должна реализовать удаление записи из БД. void __fastcall TForm1::N8Click(TObject...

Сохранение/Удаление всех записей из одиночной формы нажатием одной кнопки
В наличие: Простая одиночная форма с полями, источник данных таблица. Мне нужно чтобы необходимые мне поля записывались в другую...

Создание, сохранение, загрузка и копирование строк
Как создать программой файл .dat, куда бы помещалась введенные строки через пробел. И при перезапуске программы их можно бы было вытащить....

3
 Аватар для SuLLeN
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855
16.03.2014, 18:59  [ТС]
Ребят, помощь все еще нужна.
0
 Аватар для dwarf
5 / 5 / 1
Регистрация: 04.03.2014
Сообщений: 20
18.03.2014, 11:43
А чего хочешь добиться при нажатии на кнопку "Убрать из списка"? Сейчас ты убираешь все записи с одинаковым именем (из графы "Имя").
Если хочешь удаления одной выделенной записи, то лучше это делать как-то так:
Java
1
2
3
4
5
6
7
8
JButton button2 = new JButton("Убрать из списка");
        button2.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                int index = myList.getSelectedIndex();
                if(index >= 0) myListModel.remove(index);
            }
        });
1
 Аватар для SuLLeN
23 / 23 / 12
Регистрация: 27.12.2011
Сообщений: 855
27.03.2014, 20:26  [ТС]
Спасибо, еще бы нормально сохранялось вместе со связью и загружалось бы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.03.2014, 20:26
Помогаю со студенческими работами здесь

Создание, сохранение, загрузка и копирование строк(подробная)
В общем, суть в этом: Есть два Едита, при нажатии на кнопку их значения сохраняются через пробел в файле.dat. После этого в другой форме...

Как в интерфейсном режиме сделать создание, добавление, удаление записей?
Здравствуйте. У меня вопрос по БД SQLite. Писала программу с использованием этой БД на Delphi, а теперь возникла необходимость реализовать...

Добавить к программе след действия: Сохранение и загрузка информации в текст. файл. Сохранение и загрузка информации в типизированный файл.
Помогите добавить к программе след действия: Сохранение и загрузка информации в текст. файл. Сохранение и загрузка информации в...

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

База данных на основе массива записей: добавление, удаление, поиск записей
Комрады, учусь асму, а некоторые моменты не осиливаю :( задача в реализовании некой базы данных с записями &quot;фамилия&quot;,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru