COME ESERCITAZIONE STO IMPLEMENTANDO UN EDITOR DI TESTO E DOVREI MIGLIORARLO IN MODO TALE CHE:
1. AD ESEMPIO NEL CODICE SOTTOSTANTE IMPLEMENTO UNA COMBOBOX CON LA QUALE L'UTENTE CAMBIA LA GRANDEZZA DEL CARATTERE,
VORREI MIGLIORARE QUESTO CODICE IN MODO TALE CHE LE MODIFICHE POSSANO ESSERE APPLICATE SOLO AL TESTO SELEZIONATO
CON IL CURSORE OPPOURE A PARTIRE DALLA POSIZIONE OVE č PRESENTE IL CURSORE DEL TESTO. INOLTRE SAREBBE UTILE LIMITARE
LA GRANDEZZA DELLA COMBOBOX A SOLE 3 COLONNE E FAR COMPARIRE LA COMPONENTE OLTRE CHE A NORD DEL FRAME MA ANCHE ALLINEATA
A SINISTRA.
//crea una casella combinata e aggiunge la grandezza dei caratteri
sizeCombo = new JComboBox();
//disabilita la modifica da parte dell'utente
sizeCombo .setEditable(true);
//aggiunge voci alla casella
sizeCombo.addItem("8");
sizeCombo.addItem("10");
sizeCombo.addItem("12");
sizeCombo.addItem("14");
sizeCombo.addItem("16");
// rilevatore di eventi della casella combinata cambia il carattere del testo con quello selezionato
sizeCombo.addActionListener(new
ActionListener(){
public void actionPerformed(ActionEvent event){
/* modifica il testo contenuto nella casella di testo in base
al valore restituito da gerSelectedItem() e grandeza di default */
textArea.setFont(new Font(
(String)faceCombo.getSelectedItem(),
Font.PLAIN,
Integer.parseInt((String)sizeCombo.getSelectedItem ())));
}//actionperformed
});//ActionListener
JPanel menuPanel = new JPanel();
//inserisce la casella combinata fra uno degli elementi del pannello
menuPanel.add(sizeCombo);
//posiziona i pulsanti in basso al frame
contentPane.add(menuPanel, BorderLayout.NORTH);
2. AD ESEMPIO NEL CODICE SOTTOSTANTE IMPLEMENTO UNA COMBOBOX CON LA QUALE L'UTENTE CAMBIA IL TIPO DEL CARATTERE,
VORREI MIGLIORARE QUESTO CODICE IN MODO TALE CHE LE MODIFICHE POSSANO ESSERE APPLICATE SOLO AL TESTO SELEZIONATO
CON IL CURSORE OPPOURE A PARTIRE DALLA POSIZIONE OVE č PRESENTE IL CURSORE DEL TESTO. INOLTRE SAREBBE UTILE ACQUISIRE
TUTTI I FONT PRESENTI SUL PC DELL'UTENTE E FAR COMPARIRE LA COMPONENTE OLTRE CHE A NORD DEL FRAME MA ANCHE ALLINEATA
A SINISTRA.
//crea una casella combinata e aggiunge i nomi dei caratteri
faceCombo = new JComboBox();
//disabilita la modifica da parte dell'utente
faceCombo .setEditable(false);
//aggiunge voci alla casella
faceCombo.addItem("Serif");
faceCombo.addItem("SansSerif");
faceCombo.addItem("Monospaced");
faceCombo.addItem("Dialog");
faceCombo.addItem("DialogInput");
// rilevatore di eventi della casella combinata cambia il carattere del testo con quello selezionato
faceCombo.addActionListener(new
ActionListener(){
public void actionPerformed(ActionEvent event){
/* modifica il testo contenuto nella casella di testo in base
al valore restituito da gerSelectedItem() e grandeza di default */
textArea.setFont(new Font(
(String)faceCombo.getSelectedItem(),
Font.PLAIN,
Integer.parseInt((String)sizeCombo.getSelectedItem ())));
}//actionperformed
});//ActionListener
//inserisce la casella combinata fra uno degli elementi del pannello
menuPanel.add(faceCombo);
//posiziona i pulsanti in basso al frame
contentPane.add(menuPanel, BorderLayout.NORTH);