如何使用JSpinner更改所选文本?

问题描述

我正在学习课程,从理论上讲,我已经能够处理POO,JFrameJPanel,事件和布局。我正处于Swing组件的中间,我正在尝试扩展老师所进行的一种练习。

目标是通过某些JItem修改选定的文本。老师使用JItem来修改所选文本的大小,方法与格式化和样式相同。就我而言,我想使用JSpinner仅控制所选的文本。我不知道是否可以做到这一点。

我附上我所做的工作的代码

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","Courier",1);
        configuraMenu("Verdana","Verdana",1);
        
        configuraMenu("Negrita","estilo","",Font.BOLD,1);
        configuraMenu("Cursiva",Font.ITALIC,1);
        
        configuraMenu("",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;

}

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)