Mantenendo la selezione dopo aver cliccato un JButton di stile testo
Domanda
sto facendo un editor di testo abbastanza semplice, e ho una domanda circa i miei tasti di stile. Quando ho evidenziare il testo e fare clic sul mio tasto "bold", le grassetto di testo come previsto, ma la mia scelta non è più visibile. Posso ancora eliminare il grassetto la selezione, il corsivo, o sottolineatura, ma non si può vedere ciò che è stato selezionato. Quindi, mi chiedo se c'è un ambiente che mi permetterà di fare clic sul pulsante, ma continuo la mia selezione? Ho provato un JMenuItem invece di un JButton, e che sembrava funzionare, ma poi ha fatto il mio sguardo barra degli strumenti abbastanza male. il codice di esempio.
//frame and pane creation up here
JToolBar tool = new JToolBar();
JToggleButton boldButton = new JToggleButton("Bold");
boldButton.addActionListener(new StyledEditorKit.BoldAction());
tool.add(boldButton);
Ogni aiuto è apprezzato.
Soluzione
Quindi, mi chiedo se c'è un ambiente che mi permetterà di fare clic sul pulsante, ma mantenere la mia selezione?
boldButton.setFocusable( false );
Altri suggerimenti
Come avrete notato, la selezione è ancora lì, ma facendo clic sul pulsante della barra degli strumenti toglie il focus dal riquadro di testo e si nasconde la selezione. È necessario impostare il fuoco posteriore utilizzando requestFocus
. Tuttavia, è necessario scrivere il proprio listener di azioni per aggiungere il codice di messa a fuoco -. Si potrebbe estendere BoldAction
per fare questo