Guten Abend,
ich bin neu in der Programmierung unter Java, kenn mich aber mit der Materie selbst bestens aus, da ich vorher unter php und delphi programmiert habe.
Ich programmiere grad einen einfachen TextEditor und möchte gerne die Anzahl der Zeilen links neben der TextArea angeben und die akutelle Zeile z.b. gelb markieren.
meine idee wäre es die zahl 1 von anfang an im editor schon anzuzeigen, denn ab eins beginnen wir ja.
und jedesmal, wenn man enter drückt soll die nächste zahl eingefügt werden, jedoch weis ich nicht wie man auf enter mit hilfe des actionlisteners reagiert(vllt geht das ja auch anders).
und wie ich die zeile färben soll weis ich ehrlich gesagt überhaupt nicht^^
habt ihr ideen? vllt codeschnippsel?
THX im vorraus
ps:
ich auch gern wissen was ihr vom code meines editors haltet:
ich bin neu in der Programmierung unter Java, kenn mich aber mit der Materie selbst bestens aus, da ich vorher unter php und delphi programmiert habe.
Ich programmiere grad einen einfachen TextEditor und möchte gerne die Anzahl der Zeilen links neben der TextArea angeben und die akutelle Zeile z.b. gelb markieren.
meine idee wäre es die zahl 1 von anfang an im editor schon anzuzeigen, denn ab eins beginnen wir ja.
und jedesmal, wenn man enter drückt soll die nächste zahl eingefügt werden, jedoch weis ich nicht wie man auf enter mit hilfe des actionlisteners reagiert(vllt geht das ja auch anders).
und wie ich die zeile färben soll weis ich ehrlich gesagt überhaupt nicht^^
habt ihr ideen? vllt codeschnippsel?
THX im vorraus
ps:
ich auch gern wissen was ihr vom code meines editors haltet:
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class JTextEditor extends JFrame implements ActionListener, WindowListener {
JTextArea text;
public JTextEditor() {
super("JTextEditor - v.3/5");
setLayout(new BorderLayout(0,0));
text = new JTextArea(null,20,60);
JScrollPane scrollpane = new JScrollPane(text);
JMenuBar menuBar = new JMenuBar();
JMenu menuFile = new JMenu("File");
menuFile.setMnemonic(KeyEvent.VK_F);
JMenuItem menuFileOpen = new JMenuItem("Open");
menuFileOpen.setMnemonic(KeyEvent.VK_O);
JMenuItem menuFileSave = new JMenuItem("Save");
menuFileSave.setMnemonic(KeyEvent.VK_S);
JMenuItem menuFileClose = new JMenuItem("Close");
menuFileClose.setMnemonic(KeyEvent.VK_C);
menuBar.add(menuFile);
menuFile.add(menuFileOpen);
menuFile.add(menuFileSave);
menuFile.add(menuFileClose);
menuBar.add(menuFile);
setJMenuBar(menuBar);
menuFileOpen.addActionListener(this);
menuFileSave.addActionListener(this);
menuFileClose.addActionListener(this);
this.getContentPane().add(scrollpane,BorderLayout.CENTER);
addWindowListener( this );
}
public void actionPerformed(ActionEvent e) {
JFileChooser fc = new JFileChooser();
if (e.getActionCommand().equals("Open")) {
int odlg = fc.showOpenDialog( null );
if(odlg == fc.APPROVE_OPTION) {
try {
File filename = fc.getSelectedFile();
FileReader file = new FileReader(filename);
//StringBuffer, da nur er Veränderungen im String zulässt
StringBuffer message = new StringBuffer();
char c;
while (file.ready())
{
c = (char)file.read();
message.append(c);
}
file.close();
//Gibt das Objekt message als String wieder
text.setText(message.toString());
}
catch(IOException ex) {
JOptionPane.showMessageDialog(null,
ex.getMessage(),
"ERROR",
JOptionPane.ERROR_MESSAGE);
}
}
}
if (e.getActionCommand().equals("Save")) {
int sdlg = fc.showSaveDialog(null);
if(sdlg == fc.APPROVE_OPTION){
try {
FileWriter file = new FileWriter(fc.getSelectedFile());
String message = text.getText();
file.write(message, 0, message.length());
file.close();
JOptionPane.showInternalMessageDialog(null, "File was saved",
"information", JOptionPane.INFORMATION_MESSAGE);
}
catch(IOException ex) {
JOptionPane.showMessageDialog(null,
ex.getMessage(),
"ERROR",
JOptionPane.ERROR_MESSAGE);
}
}
}
if(e.getActionCommand().equals("Close")) {
System.exit(0);
}
}
public void windowClosing( WindowEvent event ) {
System.exit( 0 );
}
public void windowClosed( WindowEvent event ) {}
public void windowDeiconified( WindowEvent event ) {}
public void windowIconified( WindowEvent event ) {}
public void windowActivated( WindowEvent event ) {}
public void windowDeactivated( WindowEvent event ) {}
public void windowOpened( WindowEvent event ) {}
public static void main(String[] args) {
JTextEditor window = new JTextEditor();
window.pack();
window.setVisible(true);
}
}