-2

我对 Java 非常陌生。我试图创建一个复选框程序,单击时将斜体和粗体文本。我已完成编码,但出现错误,不知道如何解决。这是我的代码:

import javax.swing.JFrame;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class checkboxes extends JFrame {

private JTextField tf;
private JCheckBox boldbox;
private JCheckBox italicbox;

public checkboxes(){

    super("This is a checkbox");
    setLayout(new FlowLayout());

    tf = new JTextField("This is a text",20);
    tf.setFont=(new Font("Serif",Font.PLAIN,14));
    add(tf);
    boldbox = new JCheckBox("Bold text");
    italicbox = new JCheckBox("Italicize Text");
    add(boldbox);
    add(italicbox);


    HandlerClass handler = new HandlerClass();
    boldbox.addItemListener(handler);
    italicbox.addItemListener(handler);
}

private HandlerClass implements ItemListener{

    public void itemStateChanged(ItemEvent event){
        Font font = null;

        if(boldbox.isSelected() && italicbox.isSelected())
            font = new Font("Serif",Font.BOLD+Font.ITALIC,14);
        else if(boldbox.isSelected())
            font = new Font("Serif",Font.BOLD,14);
        else if(italicbox.isSelected())
            font = new Font("Serif",Font.ITALIC,14);
        else
            font = new Font("Serif",Font.PLAIN,14);
        tf.setFont(font);
        }
}   }   

我在这一行收到错误:

tf.setFont=(new Font("Serif",Font.PLAIN,14));

错误说: setFont 无法解析或不是字段

请指导我的代码中的错误是什么。谢谢。

4

2 回答 2

3

将此更改tf.setFont=(new Font("Serif",Font.PLAIN,14));

tf.setFont(new Font("Serif",Font.PLAIN,14));

因为JTextField#setFont()是一种方法,您不能在其上使用赋值运算符!

于 2013-07-09T05:47:19.263 回答
3

它应该是,下面是将参数传递给方法的有效方法

tf.setFont(new Font("Serif",Font.PLAIN,14));

当你说

tf.setFont=Java 假定它tf具有setFont公共字段,它 ( JTextField) 没有

于 2013-07-09T05:47:24.593 回答