Java.Help

  • Автор теми AkeL.php
  • Дата створення
A

AkeL.php

Guest
Наверно предлагают смотреть в сторону SWT.
P.S. или AWT ))))
 

Hamster

Well-Known Member
Нука, жабакоддеры, помогите разобраться, а то инета нет :evil:
Код:
---TaskList.java---
....
ArrayList list = new ArrayList();
....

public void serializableTaskList(File file) throws FileNotFoundException, IOException
	{

            ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file));
            oos.writeObject(list);
			oos.flush();  
            oos.close();
	} 

---BlaBlaBla.java---
...
ArrayList taskList = new TaskList();
...

	private JButton getSerializeTaskListButton(){
		if (serializeTaskListButton == null) {
            serializeTaskListButton = new JButton("Serialize");
            serializeTaskListButton.setBounds(new Rectangle(200, 185, 90, 29));
            serializeTaskListButton.setToolTipText("<html> Click a button to delete <br> task from program</html>");
        }
        serializeTaskListButton.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent ae){
				jfc.setFileFilter(resFileFilter);
                if(taskList!=null && taskList.getSize()>0){
                    int res = jfc.showSaveDialog(null);
					if(res==JFileChooser.APPROVE_OPTION)
						try{	System.out.println(jfc.getSelectedFile().getAbsolutePath());
								taskList.serializableTaskList(jfc.getSelectedFile()) ;
									
									//JOptionPane.showMessageDialog(null, "Successfully serialized.","Serialization OK",JOptionPane.INFORMATION_MESSAGE);
								
							}
						catch (FileNotFoundException fe){
									JOptionPane.showMessageDialog(null, 
																  "Serialization error! Maybe can't write file.",
																  "Error",
																  JOptionPane.ERROR_MESSAGE);
							}								  
						catch(IOException ie){
									JOptionPane.showMessageDialog(null, 
																  "Serialization error! Error while writing file.",
																  "Error",
																  JOptionPane.ERROR_MESSAGE);
							}		
				}		
					else
						JOptionPane.showMessageDialog(null, 
						      						  "TaskList is empty",
								    				  "Empty TaskList",
													  JOptionPane.ERROR_MESSAGE);						
            }
        });
        return serializeTaskListButton;
	}
Постоянно при попытке сериализации генерируется IOException , и соответственно сообщение "Serialization error! Error while writing file."
Какого? После закрытия проги сразу появляется файл.
 
Останнє редагування:

PainKiller

Пастафарианец
Команда форуму
Супер Модератор
Ос какая? Как компилить пробовал?
 

Hamster

Well-Known Member
Голова по утру сварила сделать ie.printStackTrace();
и добавить "implements Serializable" =)
 
A

AkeL.php

Guest
Подскажите, что это за варнинги и как с ними бороться.
Код:
FTPClient.java:124: warning: [deprecation] readLine() in java.io.DataInputStream has been deprecated
          while ((str2 = localDataInputStream.readLine()) != null)
                                             ^
FTPClient.java:131: warning: [empty] empty statement after if
          if (localSocket == null);
                                  ^
FTPClient.java:240: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.Vector
            dvl.add(line);
 

Cris

Member
Подскажите, что это за варнинги и как с ними бороться.
Код:
FTPClient.java:124: warning: [deprecation] readLine() in java.io.DataInputStream has been deprecated
          while ((str2 = localDataInputStream.readLine()) != null)
                                             ^
FTPClient.java:131: warning: [empty] empty statement after if
          if (localSocket == null);
                                  ^
FTPClient.java:240: warning: [unchecked] unchecked call to add(E) as a member of the raw type java.util.Vector
            dvl.add(line);
я яву вижу очень оченбь редко, но чтото мне подсказывает что еше неплохо видить код, а если по ошибкам то:
1 - попробуй разбить своб логическую операцию на несколько, localDataInputStream.readLine() - вынени както из условия цыкла))
2 - ты чета делаюеш с чемто тчо неимее знаения, и операции невозможны
3 - или тип не такой, что мало вероятно, а больше мне кажеться это похоже на зацикливание)
 

PainKiller

Пастафарианец
Команда форуму
Супер Модератор
Проверь цикл while. Походу нет инкремента.
После if()точка с запятой не ставиться=)
Как add() объявлено? Не протектед случайно?=)
 

Hamster

Well-Known Member
1. Что нам говорит явадок:

@Deprecated
public final String readLine()
throws IOException
Deprecated. This method does not properly convert bytes to characters. As of JDK 1.1, the preferred way to read lines of text is via the BufferedReader.readLine() method. Programs that use the DataInputStream class to read lines can be converted to use the BufferedReader class by replacing code of the form:
DataInputStream d = new DataInputStream(in);

with:
BufferedReader d
= new BufferedReader(new InputStreamReader(in));

2. Толку от этого иф?
3. addElement(line) ? Метод add() возвращает boolean
 

dreamer

Member
:-D
Cris, PainKiller - если не знаешь лучше молчать.
Hamster, спасибо за нормальный ответ.
AkeL.php, ты б сначала в инете поискал бы что означает Deprecated.
 
A

AkeL.php

Guest
Спасибо за ответы.
Первую проблему решил благодаря совету Hamster
Код:
BufferedReader d = new BufferedReader(new InputStreamReader(in));
2-я, опечатка :) У меня был код
Код:
if (localSocket == null)
          try {
            localSocket.close(); } catch (IOException localIOException4) {
          }
3. Решилось с помощью типизации вектора: Vector<String>
 
Зверху