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.
Zunächst habe ich zwei Probleme:
1. ActionListener: Ich möchte einfach erreichen, dass, wenn ich auf "Datei öfnnen klicke, sich der JFrameTitle ändert. Der Kompiler zeigt keine Fehler an, aber leider klappt das trotzdem nicht...
2. Textfeldgröße: Wenn ich die Applikation ausführe, kommt immer so ein hässlicher Rand. Außerdem verändert sich natülrich auch nicht die TextArea-Größe, wenn ich den JFrame mit der Maus vergrößere (liegt natürlich an den konstanten Werten im TextArea-Konstruktor). Aber wie lege ich die Werte so fest, so die Textfeldgröße immer so groß wie der JFrame ist? Hab JTextArea(getSize().height, getSize().width) ausprobiert, klappt aber natürlich nicht, weil bei getSize Pixelangaben rauskommen, die TextArea möchte aber Angaben für Spalten und Zeilen.
Wäre toll, wenn ihr euch mal den Code anschauen könntet, und mir Lösungsansätze geben könntet.
Mfg
Gayson
Ich habe vor ca. 1 Monat angefangen, ein Buch über Java zu lesen (Java in 21 Tagen).
Nun möchte ich mein erworbenes Wissen (

Zunächst habe ich zwei Probleme:
1. ActionListener: Ich möchte einfach erreichen, dass, wenn ich auf "Datei öfnnen klicke, sich der JFrameTitle ändert. Der Kompiler zeigt keine Fehler an, aber leider klappt das trotzdem nicht...
2. Textfeldgröße: Wenn ich die Applikation ausführe, kommt immer so ein hässlicher Rand. Außerdem verändert sich natülrich auch nicht die TextArea-Größe, wenn ich den JFrame mit der Maus vergrößere (liegt natürlich an den konstanten Werten im TextArea-Konstruktor). Aber wie lege ich die Werte so fest, so die Textfeldgröße immer so groß wie der JFrame ist? Hab JTextArea(getSize().height, getSize().width) ausprobiert, klappt aber natürlich nicht, weil bei getSize Pixelangaben rauskommen, die TextArea möchte aber Angaben für Spalten und Zeilen.
Wäre toll, wenn ihr euch mal den Code anschauen könntet, und mir Lösungsansätze geben könntet.
Mfg
Gayson
Code:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Editor extends JFrame implements ActionListener {
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);
m1.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();
JTextArea textfeld = new JTextArea(20, 20);
textfeld.setLineWrap(true);
textfeld.setWrapStyleWord(true);
JScrollPane scrollpane = new JScrollPane(textfeld, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
pane.add(scrollpane);
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) {
String cmd = evt.getActionCommand();
if (cmd.equals("Datei Öffnen")) {
setTitle("Es hat geklappt!")
}
}
repaint();
}
}