首页 > 解决方案 > 在 jtextarea java 中更改字体时出错

问题描述

我在更改 Jtextarea 中的字体时遇到了问题,我有 2 个视图(WidowsP, TypeJava)、2 个控制器(ControlerControler2)和一个模型。在这种情况下,当我更改组件发送错误的字体时,我的问题出在 jtextarea 中:

线程“AWT-EventQueue-0”中的异常 java.lang.NullPointerException

在我的主要观点windowP中,我有以下组件:

Jtextarea = areatexto;
JmenuItem = Jopcions;

我的模型代码是:

public void fueltypes(JComboBox numbers,String[] Fonts, JComboBox list){
    for(int i =10;i<=30;i++){
        numbers.addItem(i);
    }
    for(String font : Fonts){
        list.addItem(font);
    }
}

public void changuefont(JTextArea area,String Fonts, int Size ){
    Font f = new Font(Fonts,Font.PLAIN,Size);
    area.setFont(f);
}

在控制器 2 上我有这个代码,因为在表单中我只有 3 个项目 jcombobox1 = 名称字体,jcombobox2 = 大小,我要更改代码的唯一按钮部分是:

private TypeJava type;
private Window view;
private Modelo model;
private String Fonts[] = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();

public controlador2(TypeJava b,Modelo m){
    this.type = b;
    this.model = m;
    this.type.JMod.addActionListener(this);
    this.type.jComboBox1.addActionListener(this);
    model.fueltypes(type.jComboBox2,Fonts,type.jComboBox1);
}

@Override
public void actionPerformed(ActionEvent e) {
    //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
  if(e.getSource()== this.type.JMod){
   model.changuefont(view.areaTexto,
           type.jComboBox1.getSelectedItem().toString(),
           Integer.parseInt(type.jComboBox2.getSelectedItem().toString()));

  }

}

标签: javamodel-view-controller

解决方案


推荐阅读