Textformatierung

FOX_86

Grünschnabel
Hallo zusammen,

ich habe ein kleines Problemchen.
Und zwar versuche ich mittels Buttons einen Text in JTextPane zu formatieren.
Wenn ich auf die jeweiligen Buttons klicke funktioniert das auch, allerdings wenn ich nochmals klicke sollte die Formatierung aufgehoben werden, und ich wusste nicht wie ich das implementieren soll.
Vielen Dank im Voraus


Code:
    private class EventHandlerTextFormat
    	implements ActionListener{
    	
    	public void actionPerformed(ActionEvent e){
    		
    		if(e.getSource() == bold){
    			StyleConstants.setBold(style,true);
    		}else if(e.getSource() == italic){
    			StyleConstants.setItalic(style,true);
    		}else if(e.getSource() == underline){
    			StyleConstants.setUnderline(style,true);
    		}else if(e.getSource() == strikethrough){
    			StyleConstants.setStrikeThrough(style,true);
    		}
    	}
    }
 
Auf dem Button kannst du doch isSelected aufrufen und damit rauskriegen ob er gerade selektiert ist oder nicht.

Java:
boolean selected = false;
if(e.getSource() instanceof AbstractButton){
   selected = ((AbstractButton)e.getSource()).isSelected();
}

if(e.getSource() == bold){
   StyleConstants.setBold(style,selected);
}else if(e.getSource() == italic){
   StyleConstants.setItalic(style,selected);
}else if(e.getSource() == underline){
   StyleConstants.setUnderline(style,selected);
}else if(e.getSource() == strikethrough){
   StyleConstants.setStrikeThrough(style,selected);
}
 
Zurück