2016-05-21 4 views
0

Ich habe ein Popup-Schriftart für den Benutzer auswählen. Ich habe sie in 3 JList aufgelistet. Aus der Liste 3 wählen sie "Schriftfamilie", "Schriftgröße" und "Schriftschnitt". Ich habe diesen Code:Einstellen der Schriftart, Stil und Größe für den Textbereich

Fonts f= new Fonts(); 
int result=JOptionPane.showConfirmDialog(null,f,"Fonts",JOptionPane.OK_CANCEL_OPTION,JOptionPane.PLAIN_MESSAGE); 
if(result==JOptionPane.OK_OPTION){ 
    String fontium=f.getFonts(); 
    int size=Integer.parseInt(f.getSizes()); 
    String style=f.getStyle(); 
    System.out.println("you selected \n Font:" + fontium + "\n size:" + size + "\n style:" + style); 
Font font=new Font(fontium, style, size); 
textArea1.setFont(font); 

} 

Das Problem, das ich habe, ist Stil in String kommt aber Stil akzeptiert int. Wie kann ich das lösen?

+0

Verwenden Sie eine 'JComboBox' oder' JToggleButton', damit der Benutzer die gewünschte (n) Stil (e) auswählen kann. Dadurch können Sie die "int" -Werte auf Ihre UI-Werte setzen. – MadProgrammer

+0

Um eine bessere Hilfe zu erhalten, sollten Sie ein [MCVE] oder [Short, Self Contained, Correct Example] (http://www.sscce.org/) veröffentlichen. –

+0

@MadProgrammer, wie man es mit JList macht –

Antwort

2

Ich weiß wirklich nicht, was Fonts Klasse tut und was der Wert style zurückgibt.

Es gibt 2 mögliche Ergebnisse.

  • Wenn style Wert wieder "0" oder "1" oder "2", dann können Sie den Wert String wie diese konvertieren:

    String style=f.getStyle(); 
    int fontStyle = Integer.parseInt(style); 
    
  • Wenn Stil Wert zurückgibt styleName wie "bolditalic" oder "italic" oder "bold" oder "plain", dann müssen Sie den Wert wie folgt steuern

    int fontStyle = 0; 
    if (style.equals("bolditalic")) { 
        fontStyle = Font.BOLD | Font.ITALIC; 
    } else if (style.equals("italic")) { 
        fontStyle = Font.ITALIC; 
    } else if (style.equals("bold")) { 
        fontStyle = Font.BOLD; 
    } else if (style.equals("plain")) { 
        fontStyle = Font.PLAIN; 
    } 
    
+0

Dank das war so nützlich –

+1

Style kann einen bestimmten Wert (fett + kursiv) – MadProgrammer

+2

Für [Beispiel] (http://stackoverflow.com/questions/ 32345162/why-sind-bold-italic-nicht-arbeiten/32345295 # 32345295) – MadProgrammer