Hallo erstmal,
ich bin gerade dabei einnen kleinen Texteditor zu basteln und wollte für jede geöffnete Datei einen neuen Tab anlegen, soweit so gut. Allerdings passt mein JTextArea nicht mehr mit der Tabgröße wenn ich die Fenstergröße, gibt es eine Möglichkeit die Tabgröße auszulesen ohne die Fenstergröße festzulegen?
Gruß Templar
Code:
ich bin gerade dabei einnen kleinen Texteditor zu basteln und wollte für jede geöffnete Datei einen neuen Tab anlegen, soweit so gut. Allerdings passt mein JTextArea nicht mehr mit der Tabgröße wenn ich die Fenstergröße, gibt es eine Möglichkeit die Tabgröße auszulesen ohne die Fenstergröße festzulegen?
Gruß Templar
Code:
Java:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
public class TextEditor extends JFrame{
protected static JMenuBar menuBar;
protected JTabbedPane tabPane;
protected JTextArea textArea;
protected String[] fileName;
protected int tabCount;
protected static String frameTitle;
protected JPanel panel;
TextEditor() {
frameTitle="unbennant.txt - Texteditor";
menuBar = new JMenuBar();
tabPane = new JTabbedPane();
System.out.println(getHeight());
textArea = new JTextArea();
fileName = new String[20];
tabCount = 1;
panel = new JPanel();
panel.add(new JScrollPane(textArea));
fileName[1] = "unbennant.txt";
getContentPane().add(tabPane);
tabPane.addTab("lol", panel);
tabPane.addTab("dunno", new JButton("ffs"));
//
setTitle(frameTitle);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(800, 600);
JMenuBar menuBar = new JMenuBar();
JMenu fileMenu = new JMenu("Datei");
menuBar.add(fileMenu);
setJMenuBar(menuBar);
Action openAction = new AbstractAction("Öffnen") {
public void actionPerformed( ActionEvent e) {
JFileChooser chooser = new JFileChooser();
chooser.setMultiSelectionEnabled(false);
if (chooser.showOpenDialog(chooser) ==
JFileChooser.APPROVE_OPTION)
textArea.setText(readdata(chooser.getSelectedFile()));
refreshTitle();
}
};
fileMenu.add(new JMenuItem(openAction));
Action saveAction = new AbstractAction( "Speichern" ) {
public void actionPerformed( ActionEvent e ) {
writeData();
refreshTitle();
}
};
fileMenu.add(new JMenuItem(saveAction));
fileMenu.add(new JSeparator());
Action exitAction = new AbstractAction( "Beenden" ) {
public void actionPerformed( ActionEvent e ) {
System.exit( 0 );
}
};
fileMenu.add( exitAction );
}
public static void main(String[] args) {
new TextEditor().setVisible(true);
}
public void refreshTitle() {
this.setTitle(fileName+" Texteditor");
}
public void writeData() {
JFileChooser fChooser = new JFileChooser();
JTextArea tArea = new JTextArea();
File file = null;
int result = 0; //fChooser.showSaveDialog(this);
if (result == JFileChooser.APPROVE_OPTION) {
file = fChooser.getSelectedFile();
if (!file.getAbsolutePath().endsWith(".txt"))
file = new File(file.getAbsolutePath() + ".txt");
try {
textArea.write(new FileWriter(file));
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
//fileName = file.getName();
//JOptionPane.showMessageDialog(this, "Erfolgreich gespeichert. ", "Speichern", JOptionPane.INFORMATION_MESSAGE);
}
public String readdata(File file) {
Reader reader = null;
String data="";
try{
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String zeile = "";
while( (zeile = br.readLine()) != null )
{
if(data == "") {
data = zeile;
} else {
data = data+"\n"+zeile;
}
}
br.close();
} catch( IOException e) {
data = ""+e;
} finally{
}
//fileName = file.getName();
return data;
}
}