Witam,
mam problem z przekazaniem danych z jednego obiektu JFrame do drugiego.
napisałem prosty edytor tekstu który po wybraniu opcji ZAPISZ powinien wyświetlić nowe okno w którym podaje się nazwę pliku w którym ma być zapisany edytowany tekst.
wszystko niby działa ale po wybraniu opcji ZAPISZ (z nowego okienka) nie powstaje żądany plik a jedyne co uzyskujemy to seria komunikatów o błędach na konsoli.
ma ktoś pomysł w czym może być problem?
może w niewłaściwy sposób próbuję przekazać dane z jednego JFrame do drugiego?
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class Aplikacja extends JFrame{
JTextArea text;
JButton zapisz, wczytaj, wyczysc;
File file;
RandomAccessFile source;
String line, line2;
JButton prz1;
JTextField text1;
JLabel et1;
ActionListener al1 = new ActionListener(){
public void actionPerformed(ActionEvent ev){
if(ev.getSource() == prz1){
line2 = text1.getText();
save();
}
}
};
ActionListener al = new ActionListener(){
public void actionPerformed(ActionEvent e){
if(e.getSource() == zapisz){
wprowadzanieNazwy();
if(e.getSource() == wczytaj){
text.setText(line);
}
if(e.getSource() == wyczysc){
text.setText(" ");
}
}
};
Aplikacja(){
setLayout(null);
setSize(1000, 900);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
text = new JTextArea();
text.setBounds(10, 10, 870, 680);
add(text);
zapisz = new JButton("Zapisz");
zapisz.setBounds(890, 10, 100, 40);
zapisz.addActionListener(al);
add(zapisz);
wczytaj = new JButton("Wczytaj");
wczytaj.setBounds(890, 60, 100, 40);
wczytaj.addActionListener(al);
add(wczytaj);
wyczysc = new JButton("Wyczyść");
wyczysc.setBounds(890, 110, 100, 40);
wyczysc.addActionListener(al);
add(wyczysc);
}
public void wprowadzanieNazwy(){
JFrame nazwa = new JFrame();
nazwa.setLayout(null);
nazwa.setSize(500, 300);
nazwa.setVisible(true);
nazwa.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
et1 = new JLabel("Wprowadź nazwę pliku do zapisu");
et1.setBounds(150, 50, 300, 30);
nazwa.add(et1);
prz1 = new JButton("Zapisz");
prz1.setBounds(150, 130, 100, 30);
nazwa.add(prz1);
prz1.addActionListener(al1);
text1 = new JTextField();
text1.setBounds(150, 90, 100, 30);
nazwa.add(text1);
}
public void save(){
file = new File(line2);
try{
if(file.createNewFile()){
System.out.println("Utworzony został plik" + line2);
}
}
catch(IOException ex){
System.out.println("Nie można utworzyć pliku" + line2);
}
try{
source = new RandomAccessFile(file, "rw");
}
catch(FileNotFoundException exc){
System.out.println("Nie można odnaleźć pliku" + file);
}
line = text.getText();
try{
source.writeBytes(line);
}
catch(IOException exce){
System.out.println("Błąd zapisu");
}
}
public static void main(String args[]){
SwingUtilities.invokeLater(new Runnable(){
public void run(){
new Aplikacja();
}
});
}
}