Text zentrieren etc.

rührnössel hat gesagt.:
Wie macht man einen Text in einer JTextArea rechtsbünding, linksbünding, zentriert?

N'Abend,
ich vermute durch

Code:
public void setComponentOrientation(ComponentOrientation o)

Einfach in der API nachschauen.
 
Hallo!

In einer JTextArea geht das nicht so ohne weiteres... dafür aber mit einem JTextPane:
Code:
/*
 * Created on 31.01.2005@19:15:41
 *
 * TODO Licence info
 */
package de.tutorials;

import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextPane;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultStyledDocument;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;

/**
 * @author Administrator
 *
 * TODO Explain me
 */
public class AlignmentExamle extends JFrame {

    private JTextPane textPane;

    private StyledDocument doc = new DefaultStyledDocument();

    private JPanel controlPanel = new JPanel() {
        {
            final JButton btnLeftAlignment = new JButton("left");
            final JButton btnRightAlignment = new JButton("right");
            final JButton btnCenterAlignment = new JButton("center");
            final SimpleAttributeSet as = new SimpleAttributeSet();

            ActionListener action = new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    Object src = e.getSource();
                    int start = textPane.getSelectionStart();
                    int len = textPane.getSelectionEnd() - start;

                    if (src == btnLeftAlignment) {
                        StyleConstants.setAlignment(as,
                                StyleConstants.ALIGN_LEFT);
                        System.out.println("left");
                    } else if (src == btnRightAlignment) {
                        StyleConstants.setAlignment(as,
                                StyleConstants.ALIGN_RIGHT);
                        System.out.println("right");
                    } else if (src == btnCenterAlignment) {
                        StyleConstants.setAlignment(as,
                                StyleConstants.ALIGN_CENTER);
                        System.out.println("center");
                    }
                    doc.setParagraphAttributes(start, len, as, false);
                }

            };

            btnLeftAlignment.addActionListener(action);
            btnRightAlignment.addActionListener(action);
            btnCenterAlignment.addActionListener(action);

            add(btnLeftAlignment, BorderLayout.WEST);
            add(btnCenterAlignment, BorderLayout.CENTER);
            add(btnRightAlignment, BorderLayout.EAST);
        }
    };

    public AlignmentExamle() {
        super("AlignmentExamle");
        setDefaultCloseOperation(EXIT_ON_CLOSE);

        try {
            doc.insertString(0, "tutorials.de", SimpleAttributeSet.EMPTY);
        } catch (BadLocationException e) {
            e.printStackTrace();
        }

        textPane = new JTextPane(doc);
        textPane.setEditable(false);
        Container c = getContentPane();
        c.add(controlPanel, BorderLayout.SOUTH);
        c.add(textPane, BorderLayout.CENTER);

        pack();
        setVisible(true);
    }

    public static void main(String[] args) {
        new AlignmentExamle();
    }
}

Gruß Tom
 
rührnössel hat gesagt.:
danke, wisst ihr wie man die größe des JTextPane ändern kann?
so gehts nicht JTextPane(30,20)

Moin,
wie immer empfehle ich die Verwendung von

setPreferredSize()
setMinimumSize()
setMaximumSize()
 
Irgendwie scheint es nicht zu funktionieren. ich ändere die werte, doch das JTextPane bleibt immer gleich groß. so hab ich es versucht
setPreferredSize(400,400)
gibts noch eine möglichkeit?
 
danke! aber wenn ich das jetzt so machen
text.setPreferredSize(300,300);
text.setMinimumSize(300,300);
text.setMaximumSize(10,10);

dann bekomme ich drei mal diese fehlermeldung:

setPreferredSize(java.awt.Dimension) in javax.swing.JComponent cannot be applied to (int,int)

text.setPreferredSize(300,300);
 
rührnössel hat gesagt.:
danke! aber wenn ich das jetzt so machen
text.setPreferredSize(300,300);
text.setMinimumSize(300,300);
text.setMaximumSize(10,10);

dann bekomme ich drei mal diese fehlermeldung:

setPreferredSize(java.awt.Dimension) in javax.swing.JComponent cannot be applied to (int,int)

text.setPreferredSize(300,300);

Schau noch mal genau hin, was Du da getan hast:
Minimum 300, aber Maximum 10, wie soll das gehen? Nimm

Code:
text.setPreferredSize(300,300);
text.setMinimumSize(300,300);
text.setMaximumSize(300,300);

oder

Code:
text.setPreferredSize(300,300);
text.setMinimumSize(10,10);
text.setMaximumSize(300,300);
 
danke, natürlich hab ich es im Quellcode "richtig" gehabt. Hab beides versucht (also:
text.setPreferredSize(300,300);
text.setMinimumSize(300,300);
text.setMaximumSize(300,300);

und

text.setPreferredSize(300,300);
text.setMinimumSize(10,10);
text.setMaximumSize(300,300);

geht aber trotzdem nicht :( ich bekomme die gleiche fehlermeldung wie vorhin beschrieben. ich benütze den j2sdk1.4.2_01 kann das damit was zu tun haben?
 
Zurück