Focus über einer JComponent

Status
Nicht offen für weitere Antworten.

PollerJava

Top Contributor
Hallo,

ich habe mehrere JButtons, JTextFields und JBarGraphs auf meinem JPanel, wenn ich eine Componente anklicke, dann sollte diese gekennzeichnet werden, das diese den Fokus hat, also nur eine Umrandung oder so was ähnliches,
Farbe oder Border ändern geht nicht, da die JComponenten alle Farben oder Border haben können,

Gibts da schon was, wie machen das die GUI- Builder mit den kleinen Vierecken an den Ecken der Komponente (Vergrößern und Verkleinern muss nicht unbedingt sein) oder muss ich mir da selber was zurechtlegen?

vielen Dank,

lg
 

PollerJava

Top Contributor
Oder anders rum, wie zeichnet man eine strichlierte Linie oder ein strichliertes Rechteck in Java, Das müsste doch mit Java2D gehen oder? Dann kann ich das strichlierte Rechteck über meine Componente geben,

lg
 
M

MiDniGG

Gast
Also zum strichllinien malen:

http://www.java-forum.org/de/topic66183_jpanel-gestrichelt-umranden.html

Aber haben die ganezn Komponenten nicht sowieso nen Rahmen um sich, wenn se markiert sind???

groesser.JPG


Wie man sieht einmal der OK-Button, Dann der Maximieren-Button und die eine Checkbox... Alle mit nem rahmen...
 

J.C.

Mitglied
Hi,

also dass es eine Funktion gibt mit der man kleine vierecke an den Ecken der Komponente zeichnen könnte (was auch immer das sein soll) weiß ich nicht. Kann mir auch nicht vorstellen wie das bei einem TextField ausschauen soll.

Dass das Textfield fokusiert ist, sieht man in dem der Cursor drin blinkt.. finde das eigentlich ziemlich markant.

Nichts desto trotz würd ich dir Border vorschlagen und zwar LoweredBevelBorder u.o. RaisedBevelBorder, die erwecken den Anschein, dass eine Komponente hervorsteht oder eingedrückt ist.

Komponente.setBorder(BorderFactory.createCompoundBorder(
BorderFactory.createRaisedBevelBorder(),
BorderFactory.createEmptyBorder(6, 6, 6, 6)));


MfG,
J.C.
 

PollerJava

Top Contributor
Nöö, die JCOmponenten können alle Border und alle Farben haben,
Wie das bei einem TextField oder bei anderen Komponenten ausschaut, dass sieht man bei den GUI- Buildern von Eclipse oder NetBeans,
Ich muss mir also was selber schreiben, da das, was verfügbar ist, nicht geht, da alle verwendet werden kann,

lg
 

PollerJava

Top Contributor
Ds ist genau das, was ich brauche, nur die strichlierte Linie soll dicker sein,
Kann ich das irgendwie machen??

Code:
import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Component;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.border.AbstractBorder;

import java.awt.Component;
import java.awt.Graphics;
import java.awt.Insets;
import javax.swing.border.BevelBorder;

import javax.swing.border.Border;


public class MeinRahmen implements ActionListener {
    
    private JComponent comp;
    
    public MeinRahmen() {
      JFrame f = new JFrame("Hallo");
      f.setBounds(10, 10, 400, 300);
      f.setLayout(null);
      f.setDefaultCloseOperation(3);
      
      JButton b = new JButton("Ich bins");
      b.setBounds(200, 200, 150, 50);
      b.setFocusPainted(false);
      b.setBackground(Color.BLUE);
      b.addActionListener(this);
      b.setBorder(null);
      
      JButton c = new JButton("Ich bin ein anderer");
      c.setBounds(50, 40, 150, 50);
      c.setFocusPainted(false);
      c.setBackground(Color.BLUE);
      c.addActionListener(this);
      c.setBorder(null);
    
      f.add(b);
      f.add(c);
      f.setVisible(true);
      f.validate();
    }
                
    public static void main(String[] args) {
        new MeinRahmen();
    }

    public void actionPerformed(ActionEvent e) {
       ((JComponent)e.getSource()).setBorder(new MyBorder());
    }  
}


class MyBorder implements Border {

   public Insets getBorderInsets(Component c) {
      return new Insets(1,1,1,1);
   }

   public boolean isBorderOpaque() {      
      return false;
   }

   public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {          
      int length = 10;
      g.setColor(Color.ORANGE);
           
      for(int i = x; (i + 10) <= width; i+=20){
         g.drawLine(i, y, i + length, y);         
      }
            
      for(int i = x; (i + 10) <= width; i+=20){
         g.drawLine(i, height-1, i + length, height-1);         
      }
            
      for(int i = y; (i + 10) <= height; i+=20){
         g.drawLine(x, i, x, i+length);         
      }
           
      for(int i = y; (i + 10) <= height; i+=20){
         g.drawLine(width - 1, i, width - 1, i+length);         
      }
   }      
}
 

PollerJava

Top Contributor
Das muss doch möglich sein, mit g.drawLine(i, y, i + length, y); irgendwie die Dicke der Linie zu bestimmen, oder??
 

PollerJava

Top Contributor
Nö doch nicht gelöst,
ich hab auf meine JComponenten (JButton) schon einen Border oben und wenn ich jetzt MyBorder z.B. auf den JButton setze, dann is natürlich der andere Border dahin, Ich müsste quasi 2 Border auf den JButton setzen können, die sich nicht beeinflussen, das geht ja naturgemäß nicht, wie kann ich das machen, dass ich den JButton mit einer strichlierten Linie einrahme, ohne das sich der JButton ändert?

Vielen Dank für die Antworten,

lg
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S KeyListener ohne Focus - Wie? Allgemeine Java-Themen 2
B Focus auf das Eingabefeld richten Allgemeine Java-Themen 4
C Swing Focus nach Beendigung eines Modal-JDialogs Allgemeine Java-Themen 5
P Listener für Tastatureingaben ohne Focus Allgemeine Java-Themen 4
D Focus und Status Allgemeine Java-Themen 2
E Focus nach Start eines externen Programmes Allgemeine Java-Themen 6
H Focus Gained nach Fensterwechsel Allgemeine Java-Themen 13
H Fenster focus Allgemeine Java-Themen 5
ARadauer mit keylistener hören auch wenn frame nicht den focus hat Allgemeine Java-Themen 2
M Focus setzen - Frage zu FAQ Artikel Allgemeine Java-Themen 6
E focus problem (mit mehreren frames) Allgemeine Java-Themen 10
E Focus Problem Allgemeine Java-Themen 65
TheJavaKid Focus für KeyListener setzen Allgemeine Java-Themen 5
kodela Datenübergabe über Buttons Allgemeine Java-Themen 8
W Jar-File Start nur über Terminal Allgemeine Java-Themen 13
A ByteArray über Socket Allgemeine Java-Themen 3
berserkerdq2 Text über einen Shape anzeigen (Scenebuilder) Allgemeine Java-Themen 1
I 2D-Grafik Vektor-Grafik über die Zwischenablage nach Adobe Illustrator transferieren Allgemeine Java-Themen 8
TheSkyRider Methode über DataInputStream "auslösen" Allgemeine Java-Themen 6
I OpenPDF erzeugt riesige PDFs, wenn Grafiken über PdfGraphics2D#drawImage gezeichnet werden Allgemeine Java-Themen 1
T Etikettendrucker über TCP-IP Allgemeine Java-Themen 1
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
B HTTP Allgemeine Fragen über Suchmaschine nutzen mit Java Allgemeine Java-Themen 20
torresbig Klasse mit extends Calendar über Methoden ändern (Hirnblockade) Allgemeine Java-Themen 7
B Liste ändern während Iteration über Diese? Allgemeine Java-Themen 16
Master3000 Java Konsole über Buffered Reader Zeilenweise auslesen ? Allgemeine Java-Themen 26
J Daten über serielle Schnittstelle empfangen Allgemeine Java-Themen 4
L Aufwandsabschätzung: Android-App Aufnahmefunktion (foto) und zweiter Ebene über dem Foto (teiltransparent) Allgemeine Java-Themen 6
M Registry Autostart Eintrag mit Java erstellen (über Windows cmd) Allgemeine Java-Themen 7
OSchriever Programm über Linux-Kommandozeile ausführen Allgemeine Java-Themen 20
J Namen von Methoden über Reguläre Ausdrücke bearbeiten Allgemeine Java-Themen 6
M Schnelleres Speichern von XML-Daten über URLConnection Allgemeine Java-Themen 4
M Keine weitere Eingabe in der Main möglich. Eventueller Ansatz über while. Allgemeine Java-Themen 8
Drachenbauer Wie kann eine vorgegebene Farbe über einen String erkannt werden? Allgemeine Java-Themen 11
W Variablenübergabe über mehrere Klassen Allgemeine Java-Themen 4
N Über einen Button in JavaFX ein Event über eine Pipeline schicken(Netty) Allgemeine Java-Themen 1
M Threads über Kommandozeile Allgemeine Java-Themen 5
david19 Software AE über Domain laufen lassen Allgemeine Java-Themen 0
Q Selbständig ActionEvent auslösen zum Daten senden über serielle Schnittstelle Allgemeine Java-Themen 7
T Problem mit externen Datenbankzugriff über SSH Tunnel Allgemeine Java-Themen 4
K Auf Dateiverzeichnis extern zugreifen (evtl über XML??) Allgemeine Java-Themen 22
C VisualVM oder Jconsole über Jolokia-Proxy Allgemeine Java-Themen 0
G USB-Pins über Java ansteuern Allgemeine Java-Themen 8
Ernesto95 Best Practice Localization über ResourceBundle Allgemeine Java-Themen 6
C Classpath Neue Klasse über einen Button ausführen Allgemeine Java-Themen 3
C Auslesen auslösen über Button-Click Allgemeine Java-Themen 8
M Fragen beantworten über Textfeldeingabe Allgemeine Java-Themen 5
AssELAss Best Practice Checksumme über jede Spalte zweier Tabellen und vergleichen Allgemeine Java-Themen 3
T Strings über Bluetooth zwischen PC,µc oder Samrtphone senden und empfangen Allgemeine Java-Themen 0
F Try/catch über ganze Klasse Allgemeine Java-Themen 9
kodela Eigenartige Datumsberechnung über GregorianCalendar Allgemeine Java-Themen 15
HarleyDavidson Best Practice Integer-Zahlenfolge über mehrere Programmstarts Allgemeine Java-Themen 7
T .jar über cmd ausführen (später dann batch) Allgemeine Java-Themen 6
F In OSX: Java-Programm über URI-Scheme aufrufen mit Parameter? Allgemeine Java-Themen 0
C Input/Output Zip Files über Socket senden und empfangen Allgemeine Java-Themen 6
M WebService - Zugriff auf Webservice Methode über Browser Allgemeine Java-Themen 1
C .jar File lässt sich nur über Konsole öffnen Allgemeine Java-Themen 1
L Videodateien über Java öffnen unabhängig vom Format Allgemeine Java-Themen 4
Thallius Hash über serialisiertes Objekt? Allgemeine Java-Themen 3
A Threads Lock über mehrere Abschnitte in verschiedenen Methoden Allgemeine Java-Themen 5
T Daten über port abfangen mit proxy server Allgemeine Java-Themen 12
M Eingabe von Arrays geht über gewünschte Anzahl hinaus Allgemeine Java-Themen 2
L Prüfen, ob Programm über 32bit oder 64bit Java ausgeführt wird Allgemeine Java-Themen 4
F Content-Disposition ermitteln über URL Allgemeine Java-Themen 2
ARadauer Checksumme über BigDecimal Werte Allgemeine Java-Themen 11
A Class Datei aus Verzeichnis über URLClassLoader laden Allgemeine Java-Themen 2
G Darstellung von Ergebnissen einer Dokumentensuche über eine JTable Allgemeine Java-Themen 19
S VLC + Lied über Java starten Allgemeine Java-Themen 17
M HTML-Code von Webseite über Browser oder Console auslesen?? Allgemeine Java-Themen 5
A Sinuston ausgeben und über Mikro Amplitude messen – machbar? Allgemeine Java-Themen 6
R Java-Progamm über Icon starten unter Windows Allgemeine Java-Themen 9
C Daten über URL an PHP verschicken Allgemeine Java-Themen 4
O Fragen über Fragen - Bei Änderung XML-Datei -> Anpassung GUI Allgemeine Java-Themen 7
aze Jar ausführen über Runtime.execute funktioniert nicht Allgemeine Java-Themen 4
S NoSuchMethodError beim Ausführen einer C Methode über JNI Allgemeine Java-Themen 5
H OOP Daten über TCP Allgemeine Java-Themen 5
Pastafari Iterator über nested HashMaps Allgemeine Java-Themen 7
R ListIterator über mehrere Arrays Allgemeine Java-Themen 13
G Interface Laden der Konfiguration über Interfaces sinnvoll? Allgemeine Java-Themen 28
D Player Objekt - Frame über Server anzeigen lassen. Allgemeine Java-Themen 3
B VoIP-Gespräche über Computer führen Allgemeine Java-Themen 3
S Jar-File startet nicht über doppelklick Allgemeine Java-Themen 2
C Java Programm über SSH starten Allgemeine Java-Themen 16
K Internetverbindung über PuTTy herstellen?! Allgemeine Java-Themen 9
C Kapselung Warum graift man auf Variablen nur über Methoden und nich direkt zu? Allgemeine Java-Themen 10
G Auf Kommandozeile über Processobjekt mit Outputstream Allgemeine Java-Themen 3
S Input/Output Binärdatei über Bytestreams Allgemeine Java-Themen 4
S Kommunikation von Core und GUI über Schnittstellen Allgemeine Java-Themen 2
J Explorer über Code starten Allgemeine Java-Themen 15
kodela Problem mit Kopieren über FileChannel Allgemeine Java-Themen 4
L Java und Javascript um Distanz über Google Maps zu berchnen Allgemeine Java-Themen 10
B UNIX Shell befehl über JavaCode ausführen Allgemeine Java-Themen 19
D Java Excel API - Schreiben in Excel lässt sich nicht über Makro starten Allgemeine Java-Themen 18
M Ampelsteuerung über Timer in Java realisieren Allgemeine Java-Themen 3
L CMD über Java öffnen Allgemeine Java-Themen 8
U Mailclient über getDesktop.mail vorbereiten, Problem beim Anhang: Allgemeine Java-Themen 3
R Klasse über Button Event in anderer Klasse informieren Allgemeine Java-Themen 11
R Frequenzausgabe (2 Kanal) über Lautsprecherausgang Allgemeine Java-Themen 22
J Java-Klasse über Konsole starten Allgemeine Java-Themen 6
E FF Einstellungen über Programm ändern? Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben