我正在学习一门课程,理论上,我已经能够处理 POO、、、、JFrame
事件JPanel
和布局。我在 Swing 组件的中间,我正在尝试扩展老师所做的一种做法。
目标是通过一些 JItem 修改选定的文本。老师使用 JItem 修改所选文本的大小,方法与修改格式和样式的方式相同。就我而言,我想使用 aJSpinner
仅控制选定的文本。我不知道我能不能做到这一点。
我附上了我所做的代码。
public class ProcesadorDeTextos {
public static void main(String[] args) {
// TODO Auto-generated method stub
MarcoProcesador marquito = new MarcoProcesador();
marquito.setDefaultCloseOperation(3);
}
}
class MarcoProcesador extends JFrame{
MarcoProcesador(){
setTitle("El Palabra");
setBounds(300, 200, 800, 450);
add(new LaminaProcesador());
setVisible(true);
}
}
class LaminaProcesador extends JPanel{
public LaminaProcesador() {
setLayout(new BorderLayout());
//-----2 principle components
campoTexto = new JTextPane();
barraTools = new JMenuBar();
//Scroll
scrollTexto = new JScrollPane(campoTexto);
//---------------toolbar/barraTools-------------
fuente = new JMenu("Fuente");
estilo = new JMenu("Estilo");
configuraMenu("Arial", "fuente","Arial",1,1);
configuraMenu("Courier", "fuente","Courier",1,1);
configuraMenu("Verdana", "fuente","Verdana",1,1);
configuraMenu("Negrita", "estilo","",Font.BOLD,1);
configuraMenu("Cursiva", "estilo","", Font.ITALIC,1);
configuraMenu("", "","", 1,1);
barraTools.add(fuente);
barraTools.add(estilo);
//-------------------Adding principal components----------------
JPanel Herramientas = new JPanel();
Herramientas.add(barraTools);
add(scrollTexto, BorderLayout.CENTER);
add(Herramientas, BorderLayout.NORTH);
}
private void configuraMenu(String rotulo, String menu, String tipoLetra, int estilos, int tamagnos) {
JMenuItem elemMenu = new JMenuItem(rotulo);
if(menu == "fuente") {
fuente.add(elemMenu);
elemMenu.addActionListener(new StyledEditorKit.FontFamilyAction("cambiaLetra", tipoLetra));
// StyledEditorKit.FontFamilyAction ya tiene el método ActionPerformed desarrollado
}
else if(menu == "estilo") {
estilo.add(elemMenu);
if(estilos == Font.BOLD) {
elemMenu.addActionListener(new StyledEditorKit.BoldAction());
}
else elemMenu.addActionListener(new StyledEditorKit.ItalicAction());
}
else {
JSpinner size = new JSpinner(new SpinnerNumberModel(12, 8, 24, 2));
size.setPreferredSize(new Dimension (45,2));
//size.addChangeListener(new StyledEditorKit.FontSizeAction("cambiaTamaño", ));
barraTools.add(size);
}
}
private JTextPane campoTexto;
private JScrollPane scrollTexto;
private JMenuBar barraTools;
private JMenu fuente, estilo;
}