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.

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top