Hallo!
Ich habe vor ca. 1 Monat angefangen, ein Buch über Java zu lesen (Java in 21 Tagen).
Nun möchte ich mein erworbenes Wissen
)) einsetzen, indem ich einen ganz normalen Texteditor bastel, dem ich dann immer mehr Funktionen zufügen möchte.
Jetzt ist nun das erste Problem aufgetacht, als ich ein Dateiauswahlfenster integrieren wollte.
Schaut euch mal bitte den Code nochmal an, irgendetwas muss in der ActionListener-Methode nicht stimmen.
Ich erhalte folgende Fehlermeldung:
C:\Java2\works\Editor.java:79: setText(java.lang.String) in javax.swing.text.JTextComponent cannot be applied to (java.lang.Object)
textfeld.setText(text.get(i-1));
Den Code habe ich teilweise mir selbst überlegt, teilweise übernommen.
Insbesondere das mit der ArrayList habe ich selbst hinzugefügt, da gibt es bestimmt doch eine elegantere andere Alternative (außer als auch mit Vektoren), oder?
Hier der Code:
Ich habe vor ca. 1 Monat angefangen, ein Buch über Java zu lesen (Java in 21 Tagen).
Nun möchte ich mein erworbenes Wissen
Jetzt ist nun das erste Problem aufgetacht, als ich ein Dateiauswahlfenster integrieren wollte.
Schaut euch mal bitte den Code nochmal an, irgendetwas muss in der ActionListener-Methode nicht stimmen.
Ich erhalte folgende Fehlermeldung:
C:\Java2\works\Editor.java:79: setText(java.lang.String) in javax.swing.text.JTextComponent cannot be applied to (java.lang.Object)
textfeld.setText(text.get(i-1));
Den Code habe ich teilweise mir selbst überlegt, teilweise übernommen.
Insbesondere das mit der ArrayList habe ich selbst hinzugefügt, da gibt es bestimmt doch eine elegantere andere Alternative (außer als auch mit Vektoren), oder?
Hier der Code:
Code:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
public class Editor extends JFrame implements ActionListener {
JTextArea textfeld = new JTextArea(20, 20);
public Editor() {
super("Editor");
setLocation(100,100);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//-----------------Look-And-Feel-Stil-----------------
try {
UIManager.setLookAndFeel (UIManager.getSystemLookAndFeelClassName());
} catch(Exception e) {};
//-----------------Menü-----------------
JMenuBar bar = new JMenuBar();
//Menüeintrag Datei
JMenuItem j01 = new JMenuItem("Datei Öffnen");
JMenuItem j02 = new JMenuItem("Datei Speichern");
JMenu m1 = new JMenu("Datei");
m1.add(j01);
m1.add(j02);
j01.addActionListener(this);
bar.add(m1);
//Menüeintrag Hilfe
JMenuItem j11 = new JMenuItem("Hilfe");
JMenuItem j12 = new JMenuItem("Info");
JMenu m2 = new JMenu("Hilfe");
m2.add(j11);
m2.add(j12);
bar.add(m2);
//-----------------Textfeld-----------------
JPanel pane = new JPanel(new BorderLayout());
textfeld.setLineWrap(true);
textfeld.setWrapStyleWord(true);
JScrollPane scrollpane = new JScrollPane(textfeld, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
pane.add(scrollpane, BorderLayout.CENTER);
setJMenuBar(bar);
setContentPane(pane);
pack();
setVisible(true);
}
public static void main (String[] arguments) {
Editor ed= new Editor();
}
public void actionPerformed(ActionEvent evt){
if (evt.getSource() instanceof JMenuItem) {
JFileChooser auswahl = new JFileChooser();
String cmd = evt.getActionCommand();
//Datei öffnen
if (cmd.equals("Datei Öffnen")) {
auswahl.showOpenDialog(this);
String filename = auswahl.getSelectedFile().getPath();
//Dateiinhalt aus SelectedFile auslesen
try {
FileReader file = new
FileReader(filename);
BufferedReader buff = new
BufferedReader(file);
boolean eof = false;
ArrayList text = new ArrayList();
while (!eof) {
String line = buff.readLine();
//wenn am Textende angelangt, Dateiinhalt der Textarea hinzufügen
if (line == null) {
for (int i=1; i<text.size(); i++){
textfeld.setText(text.get(i-1));
}
eof = true;
//wenn noch nicht am Textende angelangt, Dateiinhalt der Arraylist hinzufügen
} else
text.add(line);
}
buff.close();
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "Error -- " + e.toString(),"Error", JOptionPane.ERROR_MESSAGE);
}
}
}
}
}