字段&name; nameOfField'的值未使用 - Java Swing

时间:2016-03-03 12:40:39

标签: java eclipse swing warnings compiler-warnings

我在JButton中收到了一些JLabelJTextFieldclass。 我只需在panel.add()方法中对它们进行初始化,然后在每个方法附近发出The value of the field 'nameOfField' is not used警告。

我的课程:

public class GuiClass 
{
    private JFrame frame;
    private JButton button1;
    private JButton button2;
    private JLabel label;
    private JTextField textField;
    private JPanel upperPanel;
    private JPanel lowerPanel;

    public GuiClass()
    {
        this.frame = new JFrame("Complex layout GUI example");
        this.upperPanel = new JPanel();
        this.lowerPanel = new JPanel();

        this.upperPanel.add(this.label = new JLabel("Enter your password:"));
        this.upperPanel.add(this.textField = new JTextField(20)); // Size of the textField
        this.lowerPanel.add(this.button1 = new JButton("Cancel"));
        this.lowerPanel.add(this.button2 = new JButton("Login"));

        this.frame.setLayout(new GridLayout(2,1));

        this.frame.add(this.upperPanel);
        this.frame.add(this.lowerPanel);

        this.frame.pack();
        this.frame.setVisible(true);
    }
}

警告靠近button1,button2,label和textField。 我正在使用Eclipse。有什么困扰呢?

PS

我可以生成getter和setter,并且警告显然已经消失但是我想从中学习Java编程我的错误是什么(如果有的话)。

感谢。

1 个答案:

答案 0 :(得分:2)

private JFrame frame;
private JButton button1;
private JButton button2;
private JLabel label;               //All Fields are private 
private JTextField textField;
private JPanel upperPanel;
private JPanel lowerPanel;
  

此处所有refrence变量都是private。这意味着所有成员变量都具有此Class的范围。因此,您应该在此类中使用所有这些refrence variables否则 eclipse会显示警告。但是,这些警告不是错误,但有些IDE eclipseIntelli j Idea这样的聪明variables会警告您是否已宣布任何未使用的getters

现在谈到你的第二个论点。这是

  

生成getter&setter&和警告显然已经消失了?

如果您生成setterspublic。它们具有variable修饰符,这意味着您可以将set在课外使用getvariables成员Warning的值。因此,它不会引发任何eclipse,因为Class意识到这些成员变量可能会在<body> <div id="wrapper"> {% block sidebar %} {% embed 'Bundle::sidebar.html.twig' %}{% endembed %} {% endblock %} </div> </body> 之外使用。

谢谢。