Announcement

Collapse
No announcement yet.

Mehrzeilige Texte bei Buttons

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Mehrzeilige Texte bei Buttons

    Hallo,
    es ist mir als Umsteiger von C++ auf JAVA leider nicht gelungen, mehrere Textzeilen bei einem Button auszugeben. Eine der vielen Versionen lautet wie folgt:

    ...
    JButton SubButton3 = new JButton();
    SubButton3.setText("Zeile1\nZeile2");
    ...
    Wahrscheinlich ist das Problem einfach zu beheben, vielen Dank für Euere Antwort im voraus.

    Johann

  • #2
    Also, generell verstehen die Swing Komponenten HTML. eine Lösung ist also folgendes:
    <div>
    import javax.swing.*;
    public class Test
    {
    public static void main(String args[])
    {
    JButton b = new JButton("<html>zeile1<br>zeile2</html>");

    JFrame f = new JFrame();
    f.getContentPane().setLayout(new java.awt.FlowLayout());
    f.getContentPane().add(b);
    f.setSize(100,100);
    f.show();
    }
    }
    Viel Erfolg noch,

    M. Barenkamp, LM Internet Service A

    Comment


    • #3
      Sorry, hat wohl die Formatierung nicht übernommen:
      Also: Im Konstriktor ist der Text als HTML deklariert der Zeilenumbruch wird durch ein BR realisiert

      Comment


      • #4
        Innerhalb des Strings muss zuerst &lt;html&gt; stehen, sonst erkennt Java nicht dass es den String nach Tags parsen soll.

        Gruss

        Thomas Tasio

        Comment


        • #5
          Danke für die Antwort, es funktioniert jetzt, wenn "<html>..." am Stringanfang steht. Die Einschränkung ist jedoch, dass die Fontgröße und die Textfarbe einen Standardwert annehmen und auch durch folgende Aufrufe nicht zu verändern sind:

          SubButton3.setFont(new java.awt.Font("Dialog", 0, 20));
          SubButton3.setForeground(Color.blue);

          Johann Brau

          Comment


          • #6
            Hallo Johann,

            also Farbe änder geht schon:
            So wie der Umbruch mithilfe der Tags zustande kommt, geht das auch mit Farbe.
            Nimm einen html Editor und schreibe einen Text. Weise dem Text eine Farbe zu. Lasse dir dann den generierten html
            Code anzeigen, und kopiere den betreffenden Teil in den Konstruktor.

            Ich habe das mit Frontpage gemacht und es hat funktioniert. Font ändern müsste also auch gehen.
            Lass' was hören wenn du Erfolg hattest

            Gruss

            Thomas Tasio

            Comment


            • #7
              Hallo Thomas,
              danke für den Tip, es klappt mit der HTML-Formatierung. Damit keine textabhängige Formatierungen stattfinden (einzeilige Texte über die Button-Eigenschaften, mehrzeilige über HTML-Steuersequenzen), muss ich mich von Haus aus dann auf die HTML-Formatierung festlegen.
              Dies geht in C++ eleganter und mit weniger Code aber JAVA hat dafür ander Vorteile.

              Gruss

              Johann Brau

              Comment


              • #8
                Hi,

                Eure Lösung finde ich Klasse, funktioniert nur leider nicht bei mir.

                Ist das HTMl "Verständnis" von Swing irgendwo abhängig, ich arbeite mit dem JDK 1.2

                Gruss
                Chri

                Comment


                • #9
                  Hallo Chris,

                  mit JDK 1.2 muss es gehen

                  Thoma

                  Comment


                  • #10
                    Hi Thomas,

                    vielleicht bin ich ja zu blöd dafür ;-), aber bist Du so nett und postest mal den kompletten String incl. der HTML Tags?

                    Danke und schönes WE!

                    Chri

                    Comment


                    • #11
                      Hallo Christian,

                      JButton button = new JButton("< html > Oben < BR > Unten");
                      entferne aber die Leerzeichen zwischen den eckigen Klammern wieder.
                      die sind nur da, um die Formatierung im Forum zu umgehen.

                      Thoma

                      Comment

                      Working...
                      X