Beschriftung von Buttons

Status
Nicht offen für weitere Antworten.

schlydi

Mitglied
Hallo,

ich habe zwei Probleme:
ersten hätte ich gerne eine rechtsbündige Beschriftung eines JLabels, zweitens würde ich gerne JToggleButtons mit Text beschriften, der aber, wie in einer Tabelle, zweispaltig, d.h. ähnliche Teile untereinander gleichbündig abschließend sein soll.
Probiert habe ich folgendes:
Java:
import java.awt.*;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;
import javax.swing.*;
import javax.swing.border.TitledBorder;

public class Build extends JFrame {

    GridLayout gl = new GridLayout(0,2);
	GridLayout gl2 = new GridLayout(8,0);
	AbstractButton tb;
	ButtonGroup bg1;
	ButtonGroup bg2;

public void build(final Container pane) throws IOException {

        JPanel p0 = new JPanel();
    	JPanel p1 = new JPanel();
        JPanel p2;
        JPanel p3;
        
        JLabel sz1 = new JLabel("Text xy");
        JLabel sz2 = new JLabel("Text xy");
        JLabel sz3 = new JLabel("Text xy");
        JLabel es = new JLabel("<html><table><tr>hier kommt ein etwas längerer Text mit Zeilenumbruch, gerne rechtsbündig</tr><tr>weiterer Text</tr></table</html>");
        JLabel zs = new JLabel("<html><table><tr>ein zweiter Text mit Zeilenumbruch, linksbündig</tr><tr>funktioniert sowieso</tr></table></html>");
        
        sz1.setFont(new Font("Arial", Font.BOLD, 34));
        sz2.setFont(new Font("Arial", Font.PLAIN, 11));
        sz2.setPreferredSize(new Dimension(300,40));
        sz2.setVerticalAlignment(1);
        sz3.setFont(new Font("Arial", Font.PLAIN, 34));
        es.setHorizontalAlignment(JLabel.RIGHT);
	        
        p0.setPreferredSize(new Dimension (400, 400));
        p0.add(new JLabel(new ImageIcon(ImageIO.read(new File(image.jpg)))));
        p0.add(sz1);
        p0.add(sz2);
        p0.add(sz3);

   p1.setLayout(g1);

        TitledBorder title1;
        title1 = BorderFactory.createTitledBorder(BorderFactory.createEmptyBorder(), "",TitledBorder.CENTER, TitledBorder.ABOVE_TOP);
        TitledBorder title2;
        title2 = BorderFactory.createTitledBorder(BorderFactory.createEmptyBorder(), "",TitledBorder.CENTER, TitledBorder.ABOVE_TOP);
        
        p1.setPreferredSize(new Dimension(500,550));
        
        add(p2 = new JPanel(gl2));
        bg1 = new ButtonGroup();
        p2.setBorder(title1);
        p2.add(jt);
        p2.add(tb = new JToggleButton("<html>text 1<br>Beschreibung 1<br>XYZ</html>")); bg1.add(tb);
        tb.setFont(new Font("Arial", Font.PLAIN, 11));
        p2.add(tb = new JToggleButton("<html>text 2<br>Beschreibung 2<br>XYZ</html>")); bg1.add(tb);
        tb.setFont(new Font("Arial", Font.PLAIN, 11));
        p2.add(tb = new JToggleButton("<html>text 3<br>Beschreibung 3<br>XYZ</html>")); bg1.add(tb);
        tb.setFont(new Font("Arial", Font.PLAIN, 11));
        p2.add(tb = new JToggleButton("<html>text 4<br>Beschreibung 4<br>Xyyz</html>")); bg1.add(tb);
        tb.setFont(new Font("Arial", Font.PLAIN, 11));
        p2.add(new JLabel());
        p2.add(tb = new JToggleButton("<html>text 5<br>Beschreibung 5<br>Xyyz</html>")); bg1.add(tb);
        tb.setFont(new Font("Arial", Font.PLAIN, 11));
        p2.add(tb = new JToggleButton("<html>text 6<br>Beschreibung 6<br>XYZ</html>")); bg1.add(tb);
        tb.setFont(new Font("Arial", Font.PLAIN, 11));
        
        add(p3 = new JPanel(gl2));
        bg2 = new ButtonGroup();
        p3.setBorder(title2);
        p3.add(zs);
        p3.add(tb = new JToggleButton("<html><table><td>XYZ</td><td>Beschreibung 1 von XYZ, mehr Text</td></table></html>")); bg2.add(tb);
        tb.setFont(new Font("Arial", Font.PLAIN, 11));
        p3.add(tb = new JToggleButton("<html><table><td>XYZ</td><td>Beschreibung 1 von XYZ, mehr Text</td></table></html>")); bg2.add(tb);
        tb.setFont(new Font("Arial", Font.PLAIN, 11));
        p3.add(tb = new JToggleButton("<html><table><td>XYZ</td><td>Beschreibung 1 von XYZ, mehr Text</td></table></html>")); bg2.add(tb);
        tb.setFont(new Font("Arial", Font.PLAIN, 11));
        p3.add(tb = new JToggleButton("<html><table><td>Xyold</td><td>Beschreibung 1 von XYZ, mehr Text</td></table></html>")); bg2.add(tb);
        tb.setFont(new Font("Arial", Font.PLAIN, 11));
        p3.add(tb = new JToggleButton("<html><table><td>XYZ</td><td>Beschreibung 1 von XYZ, mehr Text</td></table></html>")); bg2.add(tb);
        tb.setFont(new Font("Arial", Font.PLAIN, 11));
        p3.add(tb = new JToggleButton("<html><table><td>Xolik</td><td>Xolik 5</td></table></html>")); bg2.add(tb);
        tb.setFont(new Font("Arial", Font.PLAIN, 11));
        p3.add(tb = new JToggleButton("<html><table><td>XYZ</td><td>Beschreibung 1 von XYZ, mehr Text</td></table></html>")); bg2.add(tb);
        tb.setFont(new Font("Arial", Font.PLAIN, 11));
        
        gl2.setVgap(5);
        gl.setHgap(50);
        
        p1.add(p2);
        p1.add(p3);
        
        pane.add(p0, BorderLayout.NORTH);
        pane.add(p1, BorderLayout.SOUTH);
    }

private static void createAndShowBuild() throws IOException {
        //Create and set up the window.
    	Build frame = new Build("Landtagswahl in Schleswig Holstein");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        //Set up the content pane.
        frame.build(frame.getContentPane());
        //Display the window.
        frame.pack();
        frame.setVisible(true);
    }
    
    public static void main(String[] args) throws IOException{
        
                createAndShowBuild();
                
        
    }
}

kann mir da jemand helfen?

Danke schonmal
 

Ebenius

Top Contributor
JToggleButtons mit Text beschriften, der aber, wie in einer Tabelle, zweispaltig, d.h. ähnliche Teile untereinander gleichbündig abschließend sein soll.
Ich bin nicht sicher, ob das Deine Frage beantwortet... Du kannst auch JButtons, JToggleButtons, JCheckBoxes, ... mit HTML befüllen:
Java:
final JToggleButton toggleButton =
      new JToggleButton("<html><body><table>"
            + "<tr><td>This toggle button</td><td>is styled by</td></tr>"
            + "<tr><td>an HTML</td><td>table</td>"
            + "</table></body></html>");

final JFrame f = new JFrame("Test Frame: HTML styled toggle button");
f.setContentPane(toggleButton);
f.pack();
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
f.setVisible(true);
 

schlydi

Mitglied
Zu Verjinorm: danke, aber
jLabel.setHorizontalAlignment(SwingConstants.RIGHT );
habe ich auch ausproboiert, ist im Prinzip dasselbe wie jLabel.setHorizontalAlignment(JLabel.RIGHT) oder jLabel.setHorizontalAlignment(4), hat alles nicht funktioniert...
 

Ebenius

Top Contributor
Zu Verjinorm: danke, aber habe ich auch ausproboiert, ist im Prinzip dasselbe wie jLabel.setHorizontalAlignment(JLabel.RIGHT) oder jLabel.setHorizontalAlignment(4), hat alles nicht funktioniert...
Nur zum Test: Setz mal die Eigenschaften des Labels; opaque:=true background:=Color.RED. Ist wirklich der Inhalt nicht rechtsbündig, oder sitzt nur das gesamte Label an der falschen Stelle?

Ebenius
 

schlydi

Mitglied
Stimmt, soweit war ich dann auch, wenn man meinen Code anschaut, habe ich das versucht, mein Problem ist, daß bei Zeile 82 und 84 die Tabellen halt unterschiedlich aussehen, weil die Texte unterschiedlich lang sind, da ich unterschiedliche Buttons brauche, kann ich nicht alles in eine Tabelle machen und die Größe wie bei HTML einzustellen funktioniert bei Java, soweit ich das probiert habe, nicht.
 

Ebenius

Top Contributor
Stimmt, soweit war ich dann auch, wenn man meinen Code anschaut, habe ich das versucht,
:oops: Der Code war einfach zu lang. Hab ich nicht bis zum Ende durchgelesen.

[...] die Größe wie bei HTML einzustellen funktioniert bei Java, soweit ich das probiert habe, nicht.
So funktioniert es:
Java:
final JToggleButton toggleButton =
      new JToggleButton(
            "<html><body><table>"
                  + "<tr><td style=\"width:150px;\">This toggle button</td><td>is styled by</td></tr>"
                  + "<tr><td style=\"width:150px;\">an HTML</td><td>table</td>"
                  + "</table></body></html>");

final JFrame f = new JFrame("Test Frame: HTML styled toggle button");
f.setContentPane(toggleButton);
f.pack();
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
f.setVisible(true);
PS: Hast Du meinen letzten Beitrag auch gesehen? Wir haben quasi gleichzeitig geschrieben...

Ebenius
 

schlydi

Mitglied
Hab jetzt das Problem mit der Rechtsbündigkeit auch über HTML gelöst, ist vielleicht nicht ganz elegant, funktioniert aber.
 

Ebenius

Top Contributor
Habe ich gemacht, das Label schein richtig zu sitzen, der Inhalt ist linksbündig..
Dein Quelltext oben ist mir zu komplex. In diesem Beispiel funktioniert die Ausrichtung richtig:
Java:
final JToggleButton toggleButton =
      new JToggleButton(
            "<html><body><table>"
                  + "<tr><td style=\"width:150px;\">This toggle button</td><td>is styled by</td></tr>"
                  + "<tr><td style=\"width:150px;\">an HTML</td><td>table</td>"
                  + "</table></body></html>");

final JLabel htmlLabel = new JLabel("<html>ABC</html>");
htmlLabel.setHorizontalAlignment(SwingConstants.RIGHT);

final JPanel contentPane = new JPanel(new GridLayout(0, 1, 6, 6));
contentPane.add(toggleButton);
contentPane.add(htmlLabel);

final JFrame f = new JFrame("Test Frame: HTML styled toggle button");
f.setContentPane(contentPane);
f.pack();
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
f.setVisible(true);
Warum es bei Dir nicht den gewünschten Effekt erzielt, vermag ich nicht zu sagen.

Ebenius
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
CptK Point2D.Double Kurven - Beschriftung und richtiges Anklicken AWT, Swing, JavaFX & SWT 7
T JButton Beschriftung AWT, Swing, JavaFX & SWT 12
Z kleine JButtons und ihre Beschriftung AWT, Swing, JavaFX & SWT 5
R TitledBorder: Beschriftung am senkrechten Rand AWT, Swing, JavaFX & SWT 3
J Menü beschriftung wird nicht verändert AWT, Swing, JavaFX & SWT 7
M Jslider Beschriftung AWT, Swing, JavaFX & SWT 6
G Sehr kleine JButtons mit Icon oder Beschriftung AWT, Swing, JavaFX & SWT 2
T JTree: Beschriftung der Zellen AWT, Swing, JavaFX & SWT 3
G beschriftung von JSlider AWT, Swing, JavaFX & SWT 7
J Beschriftung vom JButton per UIManager ändern AWT, Swing, JavaFX & SWT 2
P JButton 20x20 Beschriftung AWT, Swing, JavaFX & SWT 2
L JSlider Beschriftung AWT, Swing, JavaFX & SWT 1
F mehrzeilige Button-Beschriftung AWT, Swing, JavaFX & SWT 5
S List mit mehrfarbiger Beschriftung AWT, Swing, JavaFX & SWT 2
XWing Basic JPanel mit 2 Buttons beutzen. AWT, Swing, JavaFX & SWT 10
jojoge Wie erstelle ich runde Buttons mit Farbe? AWT, Swing, JavaFX & SWT 1
berserkerdq2 Buttons und Shapes sehen ja nach Screengröße klein oder zu groß aus, jemand eine Idee, was man tun kann? AWT, Swing, JavaFX & SWT 1
H Swing Buttons erst nach Klick sichtbar AWT, Swing, JavaFX & SWT 13
volcanos SpringLayout mit zusätzlichen Buttons außerhalb des SpringLayout AWT, Swing, JavaFX & SWT 33
K Swing Buttons erst blinken lassen und dann abfragen, ob sie gedrückt worden sind AWT, Swing, JavaFX & SWT 2
Z Switch Case für Buttons AWT, Swing, JavaFX & SWT 8
O Swing JOptionPane.showOptionDialog - Wie kann ich Buttons größer machen AWT, Swing, JavaFX & SWT 10
R mehrere buttons mit forschleife kreieren und individuell bearbeiten AWT, Swing, JavaFX & SWT 1
Z Swing Kann man denn abstand zwischen zwei Buttons berechnen AWT, Swing, JavaFX & SWT 5
B JavaFX DropDown Menu mit ausführbaren Buttons AWT, Swing, JavaFX & SWT 1
VPChief Buttons Reagieren erst wenn ich Fenster minimiere AWT, Swing, JavaFX & SWT 4
ms_cikar Jbutton erzeugt neue Buttons AWT, Swing, JavaFX & SWT 2
K Buttons dynamisch erstellen (NetBeans) AWT, Swing, JavaFX & SWT 10
S Kreis vergrößern/verkleinern mit Buttons AWT, Swing, JavaFX & SWT 1
J JavaFX von einem Array aus Buttons herausfinden auf welcher geklickt wurde aus dem Array. AWT, Swing, JavaFX & SWT 1
xYurisha ActionListener Methoden Buttons zuweisen! AWT, Swing, JavaFX & SWT 16
xYurisha Aus einer Gui Buttons, Label und ProgessBars entfernen AWT, Swing, JavaFX & SWT 4
CptK Wieso wird nur ein Teil meiner Buttons angezeigt? AWT, Swing, JavaFX & SWT 1
J Ziehen eines Buttons im JPanel AWT, Swing, JavaFX & SWT 2
J Drag and Drop eines Buttons AWT, Swing, JavaFX & SWT 0
J TicTacToe Buttons AWT, Swing, JavaFX & SWT 14
J ActionListener bei Buttons AWT, Swing, JavaFX & SWT 14
DaCrazyJavaExpert Swing Extern den Text eines nicht fetsgelegten Buttons bekommen. AWT, Swing, JavaFX & SWT 12
T Swing Double Click bei Buttons in JTable AWT, Swing, JavaFX & SWT 9
C Buttons funtionieren nicht AWT, Swing, JavaFX & SWT 10
S SWT neues Fenster, buttons aus alten etc... AWT, Swing, JavaFX & SWT 0
G vorgefertigte Buttons oder neue Komponente mit MouseListener? AWT, Swing, JavaFX & SWT 0
Neumi5694 Sprache der Standard-Buttons AWT, Swing, JavaFX & SWT 7
Timo_neu_in_java Buttons Erstellen AWT, Swing, JavaFX & SWT 6
H JavaFX TableCell mit Buttons AWT, Swing, JavaFX & SWT 1
A Swing Programm funktioniert aber zwei Buttons werden angezeigt AWT, Swing, JavaFX & SWT 3
kilopack15 Buttons ohne Funktion AWT, Swing, JavaFX & SWT 2
S Keylistener reagiert bei Buttons nicht. AWT, Swing, JavaFX & SWT 8
S ActionListener für alle Buttons AWT, Swing, JavaFX & SWT 26
T Buttons auf Tablet viel kleiner als am PC AWT, Swing, JavaFX & SWT 0
S Buttons und TextField automatisch vergrößern AWT, Swing, JavaFX & SWT 8
R 2D-Grafik Buttons mit Slick2D und LWJGL AWT, Swing, JavaFX & SWT 2
J JavaFX Buttons mit Array erzeugen AWT, Swing, JavaFX & SWT 1
JG12111989 Buttons funktionieren nicht AWT, Swing, JavaFX & SWT 4
A Swing Buttons werden trotz setVisible nicht dargestellt AWT, Swing, JavaFX & SWT 14
M Buttons in JSplitPane hinzufügen AWT, Swing, JavaFX & SWT 6
X Swing Anwendung regaiert auf keine Buttons mehr wärend while(scanner.hasNextLine()) ausgeführt wird. AWT, Swing, JavaFX & SWT 4
T Durch klicken eines Buttons Klasse wechseln AWT, Swing, JavaFX & SWT 2
A Swing JPanel zeigt Buttons nicht an AWT, Swing, JavaFX & SWT 4
V Tastatur KeyListener für mehrere Buttons AWT, Swing, JavaFX & SWT 1
I JavaFX Langes drücken eines Buttons AWT, Swing, JavaFX & SWT 4
I JavaFX Buttons und TableView AWT, Swing, JavaFX & SWT 2
K Swing Durch Methode erzeugte Buttons ansteuern AWT, Swing, JavaFX & SWT 5
D Buttons werden nebeneinander angeordnet AWT, Swing, JavaFX & SWT 9
J Java -8 Action Listener für mehrere Buttons AWT, Swing, JavaFX & SWT 9
D JavaFX Dynamisch erzeugte Buttons sollen Code ausführen. AWT, Swing, JavaFX & SWT 2
D Buttons erscheinen nicht auf Frame AWT, Swing, JavaFX & SWT 2
M 4-Gewinnt mit Buttons AWT, Swing, JavaFX & SWT 1
Y Kann man Buttons in einem JFrame rund machen ? AWT, Swing, JavaFX & SWT 2
K Swing Keine Reaktion auf Tastatureingaben bei mehreren Buttons??? AWT, Swing, JavaFX & SWT 4
wolfgang63 JavaFX Transparenter Hintergrund aber sichtbare Buttons AWT, Swing, JavaFX & SWT 6
C Im ActionListener Buttons disablen, einen Thread starten, dann Buttons enablen AWT, Swing, JavaFX & SWT 2
gamebreiti auf usereingabe warten mit GUI(nur Labels, Buttons etc. keine Texteingaben) AWT, Swing, JavaFX & SWT 3
W Buttons verschieben AWT, Swing, JavaFX & SWT 3
R Swing Buttons werden nicht angezeigt AWT, Swing, JavaFX & SWT 4
P Buttons/Labels auf GUI positionieren AWT, Swing, JavaFX & SWT 2
X Swing setContentPane verdeckt mir alle Buttons Labels etc... AWT, Swing, JavaFX & SWT 14
H Taschenrechnerprojekt in Javafx - Frage zu den Buttons in FXML AWT, Swing, JavaFX & SWT 1
U Swing Beim Bedienen eines Buttons JFrame schließen AWT, Swing, JavaFX & SWT 2
A Radio Buttons sollen den Text der text Area bestimmen AWT, Swing, JavaFX & SWT 9
H org.eclipse.swt.Slider ohne Buttons AWT, Swing, JavaFX & SWT 1
U Buttons schräg implementieren AWT, Swing, JavaFX & SWT 4
X buttons aus externe klasse lesen? AWT, Swing, JavaFX & SWT 3
V Buttons sehen immer "active" aus AWT, Swing, JavaFX & SWT 6
K Event Handling 2 Buttons und Thread stop AWT, Swing, JavaFX & SWT 3
D Buttons erscheinen nicht auf dem zweiten Frame AWT, Swing, JavaFX & SWT 4
D Wie kann ich Buttons und Labels besser anordnen AWT, Swing, JavaFX & SWT 4
C Probleme mit Buttons und einem ActionListener AWT, Swing, JavaFX & SWT 2
A Swing bei Auswahl und klick eines JComboBox buttons die Klasse eines anderen Projekts aufrufen AWT, Swing, JavaFX & SWT 3
M Menü mit Buttons AWT, Swing, JavaFX & SWT 8
H Swing JTabbedPane: Zusätzliche Buttons neben den Tabs AWT, Swing, JavaFX & SWT 7
A Swing Focus der Radio Buttons + text bleibt gleich und gleichzeitige ausgabe zweier Objekte in 1. Fenster AWT, Swing, JavaFX & SWT 3
U Swing Buttons generieren AWT, Swing, JavaFX & SWT 19
G Swing Buttons in Layouts frei platzieren AWT, Swing, JavaFX & SWT 7
S Layouts, mehrere Buttons nebeneinander AWT, Swing, JavaFX & SWT 2
B Buttons auf JLabel? AWT, Swing, JavaFX & SWT 4
J ActionListener für Buttons AWT, Swing, JavaFX & SWT 3
1 Buttons in Kombination mit Linien AWT, Swing, JavaFX & SWT 3
K Aussehen des Buttons resetten AWT, Swing, JavaFX & SWT 4
C Verschiebbare "Buttons" in einer Tabelle AWT, Swing, JavaFX & SWT 3

Ähnliche Java Themen


Oben