Имеется программа для работы с файлами/каталогами, ее нужно выполнить в графическом интерфейсе.
Т.е. вместо введения цифр в консольной версии, должно быть нажатие кнопок
Программа большая, подскажите как реализовать, хотя бы общий вид и 1-2 пункта
Исходная программа
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
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
| package laboratorywork.pkg3;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Scanner;
public class LaboratoryWork3 {
public static void main(String[] args) throws IOException, InterruptedException {
Scanner in = new Scanner(System.in);
int menu=0;
System.out.println("Введите путь к каталогу");
String way = in.next();
File dir = new File(way);//определяем объект класса File для каталога
System.out.println();
while (menu!=9){
System.out.println("Текущий каталог: "+way);
System.out.println("Выберите действие:");
System.out.println("2-Вывод содержимого каталога");
System.out.println("3-Перемещение по уровням вложенности каталога");
System.out.println("4-Вывод свойств файла");
System.out.println("5-Удаление файла");
System.out.println("6-Чтение содержимого файла");
System.out.println("7-Создание простого текстового файла и запись его на диск");
System.out.println("8-Cоздание нового каталога");
System.out.println("9-Выход");
System.out.println();
menu=in.nextInt();
//организовываем меню с помощью цикла
switch (menu){
//2-Вывод содержимого каталога
case 2:
System.out.println("Текущий каталог:"+way);
System.out.println("Содержимое текущего каталога:");
dir = new File(way);
if(dir.isDirectory()){
for(File item : dir.listFiles()){
if(item.isDirectory()){System.out.println("Каталог "+item.getName());}
else{System.out.println("Файл "+item.getName());}}}
System.out.println();
System.out.println();
break;
case 3:
//3-Перемещение по уровням вложенности каталога
System.out.println("Текущий каталог:"+way);
System.out.println("Содержимое текущего каталога:");
dir = new File(way);
if(dir.isDirectory()){
for(File item : dir.listFiles()){
if(item.isDirectory()){System.out.println("Каталог "+item.getName());}
else{System.out.println("Файл "+item.getName());}}}
int k=0;
while (k!=33){
System.out.println();
System.out.println("Куда перейдем?(11-на уровень ниже, 22-на уровень выше, 33-находимся в нужном каталоге)");
k = in.nextInt();
switch (k){
case 11:
System.out.println("Введите элемент нижнего уровня:");
String newway = in.next();
way=way+"\\"+newway;
dir = new File(way);
System.out.println("Текущий каталог:"+way);
System.out.println("Содержимое текущего каталога:");
if(dir.isDirectory()){
for(File item : dir.listFiles()){
if(item.isDirectory()){System.out.println("Каталог "+item.getName());}
else{System.out.println("Файл "+item.getName());}}}
break;
case 22:
way=way.substring(0,way.lastIndexOf("\\"));
dir = new File(way);
System.out.println("Текущий каталог:"+way);
System.out.println("Содержимое текущего каталога:");
if(dir.isDirectory()){
for(File item:dir.listFiles()){
if(item.isDirectory()){System.out.println("Каталог "+item.getName());}
else{System.out.println("Файл "+item.getName());}
}
}
break;
}
}
System.out.println();
System.out.println();
break;
case 4:
//4-Вывод свойств файла
System.out.println("Текущий каталог:"+way);//используя методы класса File, получаем стандартные свойства файла
System.out.println("Содержимое текущего каталога:");
dir = new File(way);
if(dir.isDirectory()){
for(File item : dir.listFiles()){
if(item.isDirectory()){System.out.println("Каталог "+item.getName());}
else{System.out.println("Файл "+item.getName());}}}
System.out.println("Введите имя файла/каталога: ");
System.out.println();
String w = in.next();
way=way+"\\"+w;
File file = new File(way);
SimpleDateFormat sdf = new SimpleDateFormat ("dd.MM.yyyy HH:mm:ss");
System.out. println("Имя файла: "+file.getName());
System.out. println("Путь: "+file.getPath());
System.out. println("Абсолютный путь: "+file.getAbsolutePath());
System.out. println("Родительский каталог: "+file.getParent());
System.out. println(file.exists()?"существует":"не существует");
System.out. println(file.canWrite()?"доступен для записи":"не доступен для записи");
System.out. println(file.canRead()?"доступен для чтения":"не доступен для чтения");
System.out. println(file.isDirectory()?"является каталогом":"не является каталогом");
System.out. println(file.isFile()?"является обычным файлом":"может быть именованным каналом");
System.out. println(file.isAbsolute()?"является абсолютным":"не является абсолютным");
System.out. println("Последнее изменение в файле:"+sdf.format(file.lastModified()));
System.out. println("Размер: "+file.length()+" байт");
way=way.substring(0,way.lastIndexOf("\\"));
System.out.println();
System.out.println();
break;
case 5:
//5-Удаление файла
System.out.println("Текущий каталог:"+way);
System.out.println("Содержимое текущего каталога:");
dir = new File(way);
if(dir.isDirectory()){
for(File item : dir.listFiles()){
if(item.isDirectory()){System.out.println("Каталог "+item.getName());}
else{System.out.println("Файл "+item.getName());}}}
System.out.println("Введите имя файла: ");
System.out.println();
w = in.next();
way=way+"\\"+w;
file = new File(way);
boolean deleted = file.delete();//используем метод delete()(класса File)
if (deleted) System.out.println("Файл удален");
way=way.substring(0,way.lastIndexOf("\\"));
System.out.println();
break;
case 6:
//6-Чтение содержимого файла
System.out.println("Текущий каталог:"+way);
System.out.println("Содержимое текущего каталога:");
dir = new File(way);
if(dir.isDirectory()){
for(File item : dir.listFiles()){
if(item.isDirectory()){System.out.println("Каталог "+item.getName());}
else{System.out.println("Файл "+item.getName());}}}
System.out.println("Введите имя файла: ");
System.out.println();
w = in.next();
way=way+"\\"+w;
ProcessBuilder pb = new ProcessBuilder("Notepad.exe", way);
try {pb.start();}
catch (IOException exc){
System.out.println("Путь к выбранному файлу: "+exc.getMessage());}//при ошибке получаем осмысленное сообщение о проблеме
way=way.substring(0,way.lastIndexOf("\\"));
System.out.println();
System.out.println();
break;
case 7:
//7-Создание простого текстового файла и запись его на диск
System.out.println("Текущий каталог:"+way);
System.out.println("Содержимое текущего каталога:");
dir = new File(way);
if(dir.isDirectory()){
for(File item : dir.listFiles()){
if(item.isDirectory()){System.out.println("Каталог "+item.getName());}
else{System.out.println("Файл "+item.getName());}}}
System.out.println();
System.out.println("Введите имя создаваемого файла:");
String name=in.next();
way=way+"\\"+name;
file = new File (way);
boolean created = file.createNewFile();//используем метод createNewFile()(класса File)
way=way.substring(0,way.lastIndexOf("\\"));
if (created) {System.out.println("Текущий каталог:"+way);
System.out.println("Содержимое текущего каталога:");
dir = new File(way);
if(dir.isDirectory()){
for(File item : dir.listFiles()){
if(item.isDirectory()){System.out.println("Каталог "+item.getName());}
else{System.out.println("Файл "+item.getName());}}}
}
System.out.println();
System.out.println();
break;
case 8:
//8-Cоздание нового каталога
System.out.println("Текущий каталог:"+way);
System.out.println("Содержимое текущего каталога:");
dir = new File(way);
if(dir.isDirectory()){
for(File item : dir.listFiles()){
if(item.isDirectory()){
System.out.println("Каталог "+item.getName());}
else{System.out.println("Файл "+item.getName());}}}
System.out.println();
System.out.println("Введите имя создаваемого каталога:");
name=in.next();
way=way+"\\"+name;
dir = new File (way);
boolean maked = dir.mkdir();//используем метод mkdir()(класса File)
System.out.println();
way=way.substring(0,way.lastIndexOf("\\"));
if(maked) {System.out.println("Текущий каталог:"+way);
System.out.println("Содержимое текущего каталога:");
dir = new File(way);
if(dir.isDirectory()){
for(File item : dir.listFiles()){
if(item.isDirectory()){System.out.println("Каталог "+item.getName());}
else{System.out.println("Файл "+item.getName());}}}
}
System.out.println();
System.out.println();
break;
}
}
}
} |
|
Безрезультатные попытки в графику
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
| package laboratorywork4;
import javax.swing.*;//компоненты и модели Swing
import java.awt.*;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
public class LaboratoryWork4 extends JFrame {
private JButton button = new JButton("Press");//работа с кнопками
private JTextField input = new JTextField("Исходный путь: ", 10);//работа с текстовым полем
private JRadioButton radio1 = new JRadioButton("Вывод содержимого каталога");
private JRadioButton radio2 = new JRadioButton("Перемещение по уровням вложенности каталога");
private JRadioButton radio3 = new JRadioButton("Вывод свойств файла");
private JRadioButton radio4 = new JRadioButton("Удаление файла");
private JRadioButton radio5 = new JRadioButton("Чтение содержимого файла");
private JRadioButton radio6 = new JRadioButton("Создание простого текстового файла и запись его на диск");
private JRadioButton radio7 = new JRadioButton("Создание нового каталога");
private JFrame frame = new JFrame("InputDialog Example #1");
public LaboratoryWork4 () {
super("Простой файловый менеджер");
this.setBounds(200, 200, 1000, 400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container container = this.getContentPane();
container.setLayout(new GridLayout(3, 2, 2, 2));
container.add(input);
ButtonGroup group = new ButtonGroup();
group.add(radio1);
group.add(radio2);
group.add(radio3);
group.add(radio4);
group.add(radio5);
group.add(radio6);
group.add(radio7);
container.add(radio1);
radio1.setSelected(true);
container.add(radio2);
container.add(radio3);
container.add(radio4);
container.add(radio5);
container.add(radio6);
button.addActionListener(new ButtonEventListener());
container.add(button);
}
class ButtonEventListener implements ActionListener {
public void actionPerformed(ActionEvent e) {
if (radio1.isSelected()) {
}
if (radio2.isSelected()) {
}
if (radio3.isSelected()) {
}
if (radio4.isSelected()) {
}
if (radio5.isSelected()) {
}
if (radio6.isSelected()) {
}
}
}
public static void main(String[] args) {
// TODO code application logic here
LaboratoryWork4 app = new LaboratoryWork4 ();
app.setVisible(true);
}
} |
|