Java JTextPane Text unterstreichen

tobi.wld

Lt. Junior Grade
Registriert
Dez. 2020
Beiträge
268
Hallo weiß zufällig jemand wie ich einen Text in JTextPane unterstreichen lassen kann? Bzw. bestimmte Textabschnitte größer bzw fett drucken kann ohne ein zweites JTextPane erstellen zu müssen?

Ich habe bereits im Internet nach einer Lösung gesucht, allerdings nichts passendes gefunden.

Mein Code:
Java:
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Arrays;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;

public class Help extends JFrame {
    Help() {
        ImageIcon image = new ImageIcon("icon.png");
        JMenuBar menubar = new JMenuBar();
        JMenuItem[] menuitem = new JMenuItem[1];
        JTextPane textPane = new JTextPane();
        JScrollPane scrollPane = new JScrollPane(textPane);

        menuitem[0] = new JMenuItem("Zurück zum Spiel");
        Arrays.asList(menuitem).forEach(e -> menubar.add(e));
        menuitem[0].addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                dispose();
            }
        });
        
        this.setTitle("Battleships - Hilfe");
        this.setDefaultCloseOperation(JFrame.HIDE_ON_CLOSE);
        this.setSize(700, 550);
        this.setIconImage(image.getImage());
        this.setResizable(false);

        textPane.setFont(new Font("Tahoma", Font.PLAIN, 15));
        textPane.setEditable(false); // Text kann nicht vom User verändert werden
        textPane.setBackground(Color.WHITE); // Hintergrundfarbe Weiß
        textPane.setText("\nBattleships - Hilfe:\n\n" // Passenden Text im Textfeld einfügen
                + "1. Schiffe setzen:\n\n   " + "- Jeder Spieler hat eine bestimmte Anzahl an Schiffen:\n      "
                + "- 1 Schiff über 2 Kästchen\n      " + "- 2 Schiffe über 3 Kästchen\n      "
                + "- 1 Schiff über 4 Kästchen\n      " + "- 1 Schiff über 5 Kästchen\n\n   "
                + "- Setzen Sie Ihre Schiffe mithilfe eines Klicks auf das gewünschte Feld.\n      "
                + "- Wenn Sie mit der linken Maustaste klicken, richten Sie Ihr Schiff horizontal aus.\n      "
                + "- Wenn Sie mit der rechten Maustaste auf ein Feld klicken, wird Ihr Schiff vertikal ausgerichtet.\n\n   "
                + "- Die Schiffe werden in der Reihenfolge von groß zu klein gesetzt.\n\n" + "2. Spielablauf:\n\n   "
                + "- Es wird ausgelost, wer zuerst tippen darf.\n\n   "
                + "- Der Angreifer klickt in der Menüleiste auf 'Gegnerisches Feld' und sucht sich anschließend ein\n     Feld auf dem Koordinatensystem heraus, auf welches er mit einem Klick feuert.\n\n   "
                + "- Nun wird dem Spieler angezeigt, ob er ein Schiff getroffen hat, oder doch in das Wasser\n     geschossen hat.\n\n   "
                + "- Ein Schiff gilt als versenkt, wenn alle Felder des Schiffes getroffen wurden.\n\n   "
                + "- Dem Beschossenen werden die ausgewählten Schiffe ebenfalls auf seiner Map angezeigt.\n\n   "
                + "- Das Feuern erfolgt immer abwechselnd, bis die Flotte eines Spielers komplett versenkt wurde.");
        this.setJMenuBar(menubar);
        this.add(scrollPane);
        this.setVisible(false);
    }
}


Vielen Dank schon einmal im Voraus.
 
<1 min Suche. Siehe hier .
Der entsprechende Auszug:
Code:
    StyleContext context = new StyleContext();
    StyledDocument document = new DefaultStyledDocument(context);

    Style style = context.getStyle(StyleContext.DEFAULT_STYLE);
    StyleConstants.setUnderline(style, true);

    document.insertString(document.getLength(), "java2s.com", style);

    JTextPane textPane = new JTextPane(document);
    textPane.setEditable(false);
    JScrollPane scrollPane = new JScrollPane(textPane);
 

Ähnliche Themen

Antworten
10
Aufrufe
1.092
F
Antworten
0
Aufrufe
932
Furtano
F
Zurück
Oben