Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > Java > Desktop-Applikationen und Grafik > Verhalten von Java GUi optimieren
Antwort
 
Themen-Optionen
Alt 10.11.2005, 11:51   Nach oben    #1
Robinson
Benutzer
 
Registriert seit: 13.08.2005
Beiträge: 67
Standard Verhalten von Java GUi optimieren

Hallo,

mal wieder eine Frage aus der Reihe die kleinen Kniffe der Java Welt.

Ich denke mein Problem sollte sich relativ einfach lösen lassen, finde aber keine Beispiele dafür.

Ich bastle an verschiedenen Swing Guis und mir gefällt das standartverhalten nicht.

Ich würde gerne eineiges an Verhalten verändern, weiß aber leider nicht wie.

1) Wenn ein Element (JTextArea, JTextFieldm, JComboBox,..) den Focus erhält sollte der Inhalt selektiert werden.

2) Anstatt des Tabs wäre es schön wenn ich auch Return und die 'hoch' und 'runter' Curser zum Wechsel des Focus verwenden könnte.

3) Im JTextArea Feld würder ich gerne vermeiden dass es zu Tab eingaben kommt. Brauche ich an der Stelle nicht und würde lieber einen Focus Wechsel erreichen.

Das wäre es erst mal für den Anfang.
Mir fallen aber bestimmt noch ein paar nette Ideen ein!

Tips wonach ich suchen soll würden schon reichen.

Gibt es so etwas wie eine übergeordnete Eingabenverarbeitung mit der ich z.B. das Drucken aus jeder beliebigen Ansicht herraus realisieren kann?

Danke schon mal
Robinson ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.11.2005, 12:16   Nach oben    #2
sparrow
Sesselkleber
 
Benutzerbild von sparrow
 
Registriert seit: 17.01.2005
Beiträge: 567
Standard

Also mit dem Drucken kann ich dir nicht helfen, ich denke mit dem Rest schon

Ich würde das realisieren indem ich eine Bibliothek erstelle in der ich eigene GUI-Objekte schreibe, jeweils von dem Swing-Pendand abgeleitet.
Dann kannst du für die selbstgeschriebenen GUI-Objekte entsprechende Listener implementieren die dein Verhalten herbeiführen.

Also im Detail:
Die legst zum Beispiel eine Klasse MyTextField an, das von JTextField abgeleitet wird. Somit erbt diese Klasse ja auch alle Methoden von seiner Elternklasse.
Du hast also theoretisch ein genaues Abbuld von JTextField.
Jetzt setzt du einen Listener bereits im Konstructor drauf und fängst das drücken der Cursor ab (sollte eigentlich gehen, auch wenn ich gerade nicht weiss wie ) und springst dann zum nächsten Objekt das einen Focus kriegen kann.
Wenn du dann MyTextField in einem Programm verwendest hat es alle Funktionen von JTextField und alle Funktionen die du selber implementiert hast.

Gruß
Sparrow
sparrow ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 10.11.2005, 12:37   Nach oben    #3
Robinson
Benutzer
 
Registriert seit: 13.08.2005
Beiträge: 67
Standard

Danke für die schnelle Antwort.

Das werde ich mir mal anschauen.
Hatte zwar gehofft es gäbe so etwas wie eine zentrale EInstellung, aber das müsste auch gehen.

Schaue dann einfach mal wie weit ich komme, und dann werde ich das Erg mal posten.

Ciao
Robinson ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 11.11.2005, 11:42   Nach oben    #4
Robinson
Benutzer
 
Registriert seit: 13.08.2005
Beiträge: 67
Standard

OK, eins klappt mal:

-> Das automatische Selektieren!

Den Rest kann man entsprechend implementieren.
Ich schlage mich jetzt erst mal mit meinen DB Problemen rum!

PHP-Code:
import javax.swing.JTextField;
import javax.swing.text.Document;

public class 
MyTextField extends JTextField {

    private static final 
long serialVersionUID 1L;
    
    public 
MyTextField() {
        
init();
    }
    public 
MyTextField(Document docString textint columns) {
        
super(doc,text,columns);
        
init();
    }
    public 
MyTextField(int columns) {
        
super(columns);
        
init();
    }
    public 
MyTextField(String text) {
        
super(text);
        
init();
    }
    public 
MyTextField(String textint columns)  {
        
super(text,columns);
        
init();
    }
    
    private 
void init() {
        
addFocusListener(new MyFocusListener());
    }

Die Konstruktoren braucht man wenn man weitere Klassen ableiten möchte welche diese evtl nutzen.
Bei mir war das ein NumericTextField.

Der FocusListener sieht so aus:

PHP-Code:
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;

import javax.swing.text.JTextComponent;

public class 
MyFocusListener implements FocusListener {

    public 
void focusGained(FocusEvent arg0) {
        
JTextComponent tmp = (JTextComponent)arg0.getComponent();
        
tmp.setSelectionStart(0);
        
tmp.setSelectionEnd(tmp.getText().length());            
    }

    public 
void focusLost(FocusEvent arg0) {
    }


Da ich den Cast auf JTextComponent mache kann man denn FocusListener auch auf JTextArea und JTextPane anwenden.

Vielleicht ist ja einer da der das auch nutzen will!

Ciao
Robinson ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.
Trackbacks are An
Pingbacks are An
Refbacks are Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Developers-guide.net Projekt sucht willige Java Programmierer beny_mcde Projekte unserer Mitglieder 11 10.08.2006 13:03
[JAVA] Wie man aus Java mit einem PHP-Script kommuniziert sparrow Tutorials 0 25.03.2006 22:24
[BUCH] Java ist auch eine Insel kampet Literatur 5 22.02.2005 14:40
Zwist um Java als Open Source kampet Nachrichten 0 05.07.2004 03:37


Alle Zeitangaben in WEZ +2. Es ist jetzt 02:10 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44