Main.java Source code

Java tutorial

Introduction

Here is the source code for Main.java

Source

import java.awt.BorderLayout;
import java.awt.Dimension;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextPane;
import javax.swing.text.Style;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;

public class Main {
    public static void main(String[] args) {
        JFrame frame = new JFrame();
        JPanel panel = new JPanel();
        JTextPane textPane = new JTextPane();

        JButton button = new JButton("Test");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        panel.setLayout(new BorderLayout());
        panel.setPreferredSize(new Dimension(200, 200));

        panel.add(textPane, BorderLayout.CENTER);
        panel.add(button, BorderLayout.SOUTH);
        textPane.addStyle("myStyle", null);

        button.addActionListener(e -> {
            StyledDocument doc = textPane.getStyledDocument();
            int start = textPane.getSelectionStart();
            int end = textPane.getSelectionEnd();
            if (start == end) {
                return;
            }
            if (start > end) {
                int life = start;
                start = end;
                end = life;
            }
            Style style = textPane.getStyle("myStyle");

            if (StyleConstants.isBold(style)) {
                StyleConstants.setBold(style, false);
            } else {
                StyleConstants.setBold(style, true);
            }
            doc.setCharacterAttributes(start, end - start, style, false);
        });

        frame.add(panel);
        frame.pack();
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
    }
}