aktuelle Position einer JTextArea ermitteln

Status
Nicht offen für weitere Antworten.

balte

Mitglied
Hallo,

Ich habe ein Problem mit JTextArea.
Ich bin kein Informatiker und daher eher Laie, also nicht gleich schimpfen...

Ich habe ein Programm geschrieben dass mir ein Textfeld anzeigt, im Textfeld Menü kann ich die angezeigte Sprache wählen... Um zu wissen welche Sprache gewählt ist soll der Name des Textfeldes die jeweilige anzeigen. Da ich den Namen nicht aus dem laufenden Programm ändern konnte schliesse ich mein Textfeld bei jedem Sprachwechsel und öffne ein neues.
Das Problem ist, das das neue Textfeld, falls die Position des alten geändert wurde, an einem anderen Ort öffnet.
Dies ist optisch natürlich sehr unschön.
Meine Fragen sind nun folgende:

-Kann ich den Namen einer offenen JTextArea ändern, und wenn ja, wie?
-Wie kann ich die aktuelle Position einer JTextArea herausfinden?
(Die Befehle editor.gedPosition(); editor.Editor_width; .. geben nur den initiierten Anfangswert zurück)?
-Wenn ich noch andere Fenster offen habe, wie sage ich der JTextArea dass sie auf dem Monitor zuvorderst dargestellt werden soll?

Danke und lieber Gruss
 

sayang

Aktives Mitglied
Hi,

poste doch mal bitte den Code, den du schon hast. Das macht es einfacher für uns, zu verstehen, was dein Problem ist.
Den Code solltest du in [ JAVA]...[/ JAVA]-Tags (ohne die Leerstellen darin) schreiben, dann wird er auch fein formatiert und ist besser lesbar.

Lg
sayang
 

balte

Mitglied
Meine JTextArea class sieht wie folgt aus:

Java:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;


public class Editor extends JFrame implements ActionListener {

  public boolean J01=false;
  public boolean J02=false;
  public boolean J03=false;
  public boolean J04=false;
  public boolean J05=false;
  
  public boolean J11=false;
  public boolean J12=false;
  public boolean J13=false;
  
  public boolean J21=false;
  public boolean J22=false;
  public boolean J23=false;
  
  
  int Editor_width;
  int Editor_height;

  JTextArea textfeld;

  public Editor(String name, int x, int y, int w, int h) {
    
  //public Editor(String name, int x, int y, int w, int h) {
    super(name);
    Editor_width=w;
    Editor_height=h;
    int X=x;
    int Y=y;
    textfeld = new JTextArea(Editor_height, Editor_width);
    setLocation(X,Y);
    textfeld.setTabSize(2);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    //---------------------------------------------------------
    try {
      UIManager.setLookAndFeel (UIManager.getSystemLookAndFeelClassName());
    } 
    catch(Exception e) {
    };

    //--------------------------------------
    JMenuBar bar = new JMenuBar();

    //Menüeintrag Datei
    JMenuItem j01 = new JMenuItem("Datei öffnen");
    JMenuItem j02 = new JMenuItem("neue Datei");
    JMenuItem j03 = new JMenuItem("Baltensperger Code Speichern unter");
    JMenuItem j04 = new JMenuItem("Processing Code Speichern unter");
    JMenuItem j05 = new JMenuItem("Programm beenden");
    JMenu m1 = new JMenu("Datei");
    m1.add(j01);
    m1.add(j02);
    m1.add(j03);
    m1.add(j04);
    m1.add(j05);
    j01.addActionListener(this);
    j02.addActionListener(this);
    j03.addActionListener(this);
    j04.addActionListener(this);
    j05.addActionListener(this);
    bar.add(m1);

    //Menüeintrag Hilfe
    JMenuItem j11 = new JMenuItem("Code starten");
    JMenuItem j12 = new JMenuItem("Übersetzten Code anzeigen");
    JMenuItem j13 = new JMenuItem("Baltensperger Code anzeigen");
    JMenu m2 = new JMenu("Compyler");
    m2.add(j11);
    m2.add(j12);
    m2.add(j13);
    bar.add(m2);
    j11.addActionListener(this);
    j12.addActionListener(this);
    j13.addActionListener(this);

    //Menüeintrag Hilfe
    JMenuItem j21 = new JMenuItem("Hilfe");
    JMenuItem j22 = new JMenuItem("Referenz");
    JMenuItem j23 = new JMenuItem("Info");
    JMenu m3 = new JMenu("Hilfe");
    m3.add(j21);
    m3.add(j22);
    m3.add(j23);
    bar.add(m3);
    j21.addActionListener(this);
    j22.addActionListener(this);
    j23.addActionListener(this);

    //-----------------------------------------------
    JPanel pane = new JPanel(new BorderLayout());
    textfeld.setLineWrap(false);
    textfeld.setWrapStyleWord(true);
    JScrollPane scrollpane = new JScrollPane(textfeld, ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    pane.add(scrollpane, BorderLayout.CENTER);

    setJMenuBar(bar);
    setContentPane(pane);
    pack();
    setVisible(true);
  }

  public void actionPerformed(ActionEvent evt){
    if (evt.getSource() instanceof JMenuItem) {
      JFileChooser auswahl = new JFileChooser();
      String cmd = evt.getActionCommand();
     
      if (cmd.equals("Datei öffnen")) {
        auswahl.showOpenDialog(this);
        String filename = auswahl.getSelectedFile().getPath();
        //Dateiinhalt aus SelectedFile auslesen
        String lines[] = loadStrings(filename);
        textfeld.setText("");
        for (int i=0; i < lines.length; i++) {
          String [] temp = new String[3];
          temp[0] = GetText();
          temp[1] = lines[i];
          temp[2] = "\n";//str(char(10));
          textfeld.setText(join(temp,""));
        }
        J01 = true;
      }

      if (cmd.equals("neue Datei")) J02 = true;
      if (cmd.equals("Baltensperger Code Speichern unter")) J03 = true;
      if (cmd.equals("Processing Code Speichern unter"))    J04 = true;
      if (cmd.equals("Programm beenden")) J05 = true;
      if (cmd.equals("Code starten"))     J11 = true;
      if (cmd.equals("Übersetzten Code anzeigen"))          J12 = true;
      if (cmd.equals("Baltensperger Code anzeigen"))        J13 = true;
      if (cmd.equals("Hilfe"))      J21 = true;
      if (cmd.equals("Referenz"))   J22 = true;
      if (cmd.equals("Info"))       J23 = true;
    }
  }

  String GetText(){
    String Get =textfeld.getText();
    return Get;
  }

  void SetText(String balte){
    textfeld.setText(balte);
  }
  
  void gedPosition(){
    println(textfeld.getColumns());
    println(textfeld.getHeight());
    println(textfeld.getLocation());
  }
  
}
 
Zuletzt bearbeitet:
G

Gonzo17

Gast
-Kann ich den Namen einer offenen JTextArea ändern, und wenn ja, wie?

Meinst du mit Name den Textinhalt? Eine JTextArea ist ja ein Textfeld, in dem du mehr als nur eine Zeile Text anzeigen bzw. schreiben kannst. Und den Text kannst du natürlich auch im Quellcode ändern, aber ich bin mir nicht sicher ob es das ist, was du meinst.

-Wie kann ich die aktuelle Position einer JTextArea herausfinden?
(Die Befehle editor.gedPosition(); editor.Editor_width; .. geben nur den initiierten Anfangswert zurück)?

Also wenn deine JTextArea beispielsweise "area" heisst, könntest du mit "area.getLocation()" die Position als "Point" auslesen, aber auch "area.getX()" und "area.getY()" sollten eigentlich funktionieren (zumindest bietet mir Eclipse diese Methoden an).

-Wenn ich noch andere Fenster offen habe, wie sage ich der JTextArea dass sie auf dem Monitor zuvorderst dargestellt werden soll?

Verstehe ich ehrlich gesagt nicht ganz. Soll die JTextArea etwa auf das vorderste Fenster hüpfen, wenn du ein anderes Fenster in den Vordergrund holst? ???:L


Edit: Hab mir grad deinen Quellcode kopiert. Funktioniert der bei dir? Also bei mir nicht, da fehlen die Methoden "join" und "loadStrings". Aber generell noch zu deinem Code. Methodennamen schreibt man immer klein (-> also "getText()", usw), deine Methode "gedPosition" ist auch sehr unglücklich gewählt. Nicht nur, weil es von der Rechtschreibung her nicht passt, sondern auch, weil der Inhalt nicht zu dem Namen passt. Bei einer get-Methode erwartet man, dass etwas zurück kommt, aber du willst ja nur, dass drei Werte ausgegeben werden. Ich würde die Methode anders nennen.
 
Zuletzt bearbeitet von einem Moderator:

balte

Mitglied
DAn ist mein Problem der JFrame? Wenn ich das Programm starte öffnet ein Editorfenster. Eigentlich dachte ich das sei die JTextArea. Wenn die JTextArea nur das Textfeld innerhalb des Rahmens ist erklärt das auch warum ich immer die gleiche Position bekomme.
Wie bekomme ich also die aktuelle Position des Fensters, und wie kann ich den Namen (super(name); )ändern?

Vielen Dank.
 
G

Gonzo17

Gast
Ja, ich denke du meinst das JFrame. Den Namen kannst du natürlich ändern, indem du einfach den Parameter änderst, wenn du deine Klasse aufrufst. Wenn du zum Beispiel "Editor("Test", 0, 0, 0, 0)" hast, aber willst, dass dein Editor anders heisst, musst du "Test" ändern. Wenn du während der Laufzeit den Namen ändern willst (zB per Knopfdruck), dann wäre wohl "setName("neuer Name")" oder "setTitle("neuer Titel")" ne Option.
Die aktuelle Position des Fensters bekommst du denke ich auch per "getLocation()", so wie schonmal beschrieben.
 

balte

Mitglied
Super, setTitle() funktioniert. Dann muss ich auch kein neues Fenster öffnen und das mit der Positionsabfrage ergibt sich dadurch auch.
Vielen Dank für die schnelle Hilfe!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
T aktuelle Position in einer Datei Java Basics - Anfänger-Themen 4
M LinkedList aktuelle position Java Basics - Anfänger-Themen 3
G TrayIcon: Wie aktuelle Position des Icons erhalten? Java Basics - Anfänger-Themen 2
berserkerdq2 Intelij, wie kann ich einstellen, dass die aktuelle Klasse ausgeführt wird, wenn ich aufs Startsymbol drücke, gibts da eine Tastenkombination? Java Basics - Anfänger-Themen 11
M Dialogbox sofort neustarten, falls aktuelle Eingabe falsch Java Basics - Anfänger-Themen 11
S Warum erscheint bei mir "Hallo Welt" und nicht die aktuelle Eingabe? Java Basics - Anfänger-Themen 16
B Datenbank, aktuelle Ende als Zahl an Label übergeben Java Basics - Anfänger-Themen 7
J Aktuelle Zeit in einer JavaFX Anwendung aktualisieren lassen Java Basics - Anfänger-Themen 4
V Die die aktuelle Größe zusätzlich in einem Label angezeigt wird Java Basics - Anfänger-Themen 11
M FileWriter Neue Datei wenn aktuelle "zu groß" Java Basics - Anfänger-Themen 3
H Erste Schritte Aktuelle Uhrzeit auslesen Java Basics - Anfänger-Themen 64
F Aktuelle Stunde, Minute usw. auslesen Java Basics - Anfänger-Themen 10
D Erste Schritte Einsteigerfrage - Überblick über aktuelle Java-Technologien Java Basics - Anfänger-Themen 6
J FileOutputStream aktuelle Speicher Pfad ausgeben Java Basics - Anfänger-Themen 13
N aktuelle Datum Mikrosekunden genau bestimmen Java Basics - Anfänger-Themen 8
RySa Input/Output aktuelle größe des BufferedWriters ? Java Basics - Anfänger-Themen 5
D JEditorPane aktuelle Zeile auslesen Java Basics - Anfänger-Themen 4
A Aktuelle Parameter Java Basics - Anfänger-Themen 4
S Aktuelle Zeile bekommen Java Basics - Anfänger-Themen 2
G Aktuelle Heap-Größe auslesen? Java Basics - Anfänger-Themen 3
T Aktuelle Datum Java Basics - Anfänger-Themen 4
M Datei ins aktuelle Verzeichnis speichern Java Basics - Anfänger-Themen 5
N ins aktuelle fenster schreiben. Java Basics - Anfänger-Themen 6
N Aktuelle Jahreszahl auslesen? Java Basics - Anfänger-Themen 3
R Woher bekomme ich das aktuelle Jahr oder auch Datum? Java Basics - Anfänger-Themen 4
B Türme von Hanoi: aktuelle Belegungszustände ausgeben? Java Basics - Anfänger-Themen 2
R Aktuelle URL herausfinden Java Basics - Anfänger-Themen 5
L px und x-position Java Basics - Anfänger-Themen 4
ptcho Werte/Position nach dem Funktionsaufruf tauschen? Java Basics - Anfänger-Themen 1
F wie kann ich die Position des letzten Vokals innerhalb einer Zeichenkette ermitteln? Java Basics - Anfänger-Themen 5
G Position einer unbekannten 3-stelligen-Zahl in einem String finden Java Basics - Anfänger-Themen 15
I 2D-Array Position der Liste ausgeben. Java Basics - Anfänger-Themen 2
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
J Itext-Paragraph Position ändern Java Basics - Anfänger-Themen 13
B Berechnung der Position von Kinderelemente von einem Elternknoten Java Basics - Anfänger-Themen 23
J Eine Position im String durch einen Integer - Wert teilen Java Basics - Anfänger-Themen 5
J Java GUI- Objekte Position per Quelltext bestimmen Java Basics - Anfänger-Themen 4
S suche nach varible POSITION ... fuer das pixel-maennchen Java Basics - Anfänger-Themen 4
I Eigenschaften von Position aus anderer Klasse übernehmen Java Basics - Anfänger-Themen 17
Anica Processing Animation Bild-Position ändern Java Basics - Anfänger-Themen 9
H Position verschieben der Elemtente im Array Java Basics - Anfänger-Themen 3
J Eingabe des Scanners an einer bestimmten Position Java Basics - Anfänger-Themen 6
S Position eines Frames Java Basics - Anfänger-Themen 3
S Einfach verkettete Liste Element an bestimmter Position einfügen Java Basics - Anfänger-Themen 24
T Arrayposition um eine Position verschieben Java Basics - Anfänger-Themen 2
V Klassen Bestimmen Sie die erste und letzte Position an der ein 'c' steht? Java Basics - Anfänger-Themen 3
R Position einer Ziffer in einer Zahlenkette Java Basics - Anfänger-Themen 5
V Datentypen Position mit Int und Float berechen und ausgeben Java Basics - Anfänger-Themen 5
Z Wie Position eines Objekts in Liste herausfinden? Java Basics - Anfänger-Themen 15
C Position eines Zeichens in einem String ausgeben Java Basics - Anfänger-Themen 1
J Buchstabe (char) an zufällige Position eines Strings einfügen Java Basics - Anfänger-Themen 1
C [Greasmonkey] Maus Coursor position setzen Java Basics - Anfänger-Themen 1
I Int Array, Zahl an bestimmte position setzten Java Basics - Anfänger-Themen 2
S Bild auf eine Position rotieren?! Java Basics - Anfänger-Themen 4
O Position des Buttons wird nicht geändert.. Java Basics - Anfänger-Themen 6
H Cursor-Position bei Rechtsclick? Java Basics - Anfänger-Themen 2
D 2 Fragen: Position ändern vs. LayoutManager / Bilder einfügen im Vordergrund Java Basics - Anfänger-Themen 3
S Maus Position Java Basics - Anfänger-Themen 6
A Eine Datei Lesen und bestimmte Position überschreiben Java Basics - Anfänger-Themen 2
S JSplitPane Divider Maximum Position Java Basics - Anfänger-Themen 5
W Position in ArrayList ermitteln Java Basics - Anfänger-Themen 4
M kurze frage: Ohne index.of position von string angeben Java Basics - Anfänger-Themen 16
M Input/Output position in temporären dateien kann nicht gesetzt werden Java Basics - Anfänger-Themen 3
E Y-Position der Maus nehmen Java Basics - Anfänger-Themen 5
R mit DefaultStyledDocument die Caret-Position ändern? Java Basics - Anfänger-Themen 5
V Position in einem Vektor Java Basics - Anfänger-Themen 3
E Position erkennen und überlappungen feststellen Java Basics - Anfänger-Themen 4
M Fixe Position von GUI Komponenten ? Java Basics - Anfänger-Themen 9
B JMenu Position bestimmen Java Basics - Anfänger-Themen 7
H B-Baum: Knoten Position als Parameter oder als Variable im Objekt? Java Basics - Anfänger-Themen 4
TheKing Spieler Position mit Array vergleichen Java Basics - Anfänger-Themen 2
T Image Position erkennen Java Basics - Anfänger-Themen 6
L die Position von Suchtreffern von Lucene finden Java Basics - Anfänger-Themen 2
S Datentypen In ArrayList nach Element suchen und Position ausgeben Java Basics - Anfänger-Themen 9
K Kreis mit neuer Position zeichnen Java Basics - Anfänger-Themen 3
S OOP Wie bei Spiel "17+4" eine Karte an bestimmte Position hinzufügen Java Basics - Anfänger-Themen 13
M Zufällige Position Java Basics - Anfänger-Themen 3
A Elemente 2er int[] auf Gleichheit und Position überprüfen Java Basics - Anfänger-Themen 7
M Position des BufferedReader Java Basics - Anfänger-Themen 6
J Programm-Fesnter Position Java Basics - Anfänger-Themen 4
O Maus / Pixel Position bei mir und bei anderen. Java Basics - Anfänger-Themen 8
F Position JTextField Java Basics - Anfänger-Themen 4
C Position eines Fensters bestimmen Java Basics - Anfänger-Themen 3
H problem mit button position Java Basics - Anfänger-Themen 4
G Bestimmte Position im array auslesen Java Basics - Anfänger-Themen 8
M Array, Int-wert Ziffer je Position zuweisen Java Basics - Anfänger-Themen 3
B String vom Server nach Position... (erledigt) Java Basics - Anfänger-Themen 6
H Exception: illegal component position Java Basics - Anfänger-Themen 5
G Position eines Objekts auf Webseite herausfinden Java Basics - Anfänger-Themen 9
hdi Grösse & Position von JScrollBar Java Basics - Anfänger-Themen 28
D Fensterrahmen und Position ändern. Java Basics - Anfänger-Themen 5
M Maus position abfragen und setzen? Java Basics - Anfänger-Themen 1
G Position Java Basics - Anfänger-Themen 7
R Position in ArrayList ermitteln Java Basics - Anfänger-Themen 5
R Element an Position in ArrayList checken Java Basics - Anfänger-Themen 4
D Dateizugriff - An bestimmter Position Lesen (Random Access) Java Basics - Anfänger-Themen 2
H Finde Position Java Basics - Anfänger-Themen 4
J mouseover Text => Bildanzeige an bestimmter Position.Wie Java Basics - Anfänger-Themen 2
B Position einer Ziffer im String bestimmen Java Basics - Anfänger-Themen 4
T Zeichen eines Strings an festgelegter Position einfügen Java Basics - Anfänger-Themen 8

Ähnliche Java Themen

Neue Themen


Oben