Hej,
napotkałem pewną przeszkodę pisząc program i nie wiem za Chiny jak go rozwiązać. Otóż otwieram sobie plik nr 1, i otwiera mi się w zakładce pięknie super itd., otwieram plik tekstowy nr 2 i znów otwiera mi się w nowej zakładce ale nadpisuje wszystkie poprzednie aktualnie otwieranym plikiem :) Taki bonus :D Już kombinowałem ile wlezie i nie wiem jak to ominąć. Proszę o jakąś podpowiedź.
Oto kawałek kodu odpowiadający za otwarcie pliku :)
Wiem, że może to nie ładnie wygląda, nie estetycznie ;) ale się poprawi. Byle zaczęło działać :)
class OpenSaveHandler implements ActionListener{
private JFileChooser choos;
private JTextArea ta;
private BufferedReader br = null;
private String data, what;
private static String name;
private FileWriter fw;
private JTabbedPane pane;
private JPanel newPanel;
private JLabel label;
public OpenSaveHandler(JTextArea area, JTabbedPane p, String w){
choos = new JFileChooser();
ta = area;
what = w;
pane = p;
}
public void actionPerformed(ActionEvent e) {
if(what.equals("open")) {
try {
choos.showOpenDialog(ta);
name = choos.getSelectedFile().getAbsolutePath();
File file = new File(name);
// pane.insertTab(name, null, newPanel, "tooltip", pane.getTabRunCount());
pane.addTab(name, newPanel);
br = new BufferedReader(new FileReader(file));
try {
ta.read(br, e);
} catch (IOException ex) {
Logger.getLogger(OpenSaveHandler.class.getName()).log(Level.SEVERE, null, ex);
}
try {
br.close();
} catch (IOException ex) {
Logger.getLogger(OpenSaveHandler.class.getName()).log(Level.SEVERE, null, ex);
}
} catch (FileNotFoundException ex) {
Logger.getLogger(OpenSaveHandler.class.getName()).log(Level.SEVERE, null, ex);
}
}
if(what.equals("save")){
choos.showSaveDialog(ta);
try {
fw = new FileWriter(choos.getSelectedFile().getAbsolutePath());
} catch (IOException ex) {
Logger.getLogger(OpenSaveHandler.class.getName()).log(Level.SEVERE, null, ex);
}
try {
fw.write(ta.getText());
} catch (IOException ex) {
Logger.getLogger(OpenSaveHandler.class.getName()).log(Level.SEVERE, null, ex);
}
try {
fw.close();
} catch (IOException ex) {
Logger.getLogger(OpenSaveHandler.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
}