Swing unwritten field warning(Java)

时间:2016-08-15 14:05:49

标签: java swing awt findbugs

我已经安装了findBugs并在if语句

的actionPerformed方法中收到错误警告
if (source == this.temp)

警告说有一个不成文的字段。当我点击名为temp的按钮时,程序仍会编译但挂起。

我以为我已经正确地初始化了该字段。有人可以指导我搞砸了吗?感谢

import java.awt.Cursor;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTabbedPane; 
import javax.swing.JTextArea;
import javax.swing.border.EmptyBorder;

import components.simplereader.SimpleReader;
import components.simplereader.SimpleReader1L;

/**
 * View class.
 *
 * @author Redacted
 */
@SuppressWarnings("serial")
public final class PasswordManagerView1 extends JFrame
    implements PasswordManagerView {

private JButton temp;

/**
 * controller.
 */
private PasswordManagerController controller;

/**
 * Jpanel.
 */

/**
 * Useful constants.
 */
private Dimension maxSize;
private JTabbedPane tabbedPane;

/**
 * Constructor.
 */
public PasswordManagerView1() {
    super("Password Manager");
    JTabbedPane tabbedPane = new JTabbedPane();
    //Initial JPanel creation
    tabbedPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    //tabbedPane.setLayout(new BorderLayout(0, 0));
    this.maxSize = new Dimension(700, 300);
    tabbedPane.setPreferredSize(this.maxSize);
    this.getContentPane().add(tabbedPane);

    //Initial JTabbedPane creation

    //Tab creation
    JComponent panel1 = this.makeTextPanel("temp1");
    ImageIcon icon = new ImageIcon("lock-icon.png");
    tabbedPane.addTab("Add Password", icon, panel1,
            "Adds a password to the vault");
    JComponent panel2 = this.makeTextPanel("temp2");
    tabbedPane.addTab("Delete Password", icon, panel2,
            "Deletes a password from the vault");
    JComponent panel3 = this.makeTextPanel("temp3");
    tabbedPane.addTab("Password Vault", icon, panel3,
            "View the passwords in the vault");
    JComponent panel4 = this.makeInfoPanel();
    tabbedPane.addTab("Info/Settings", icon, panel4,
            "View settings and program info");
    JButton temp = new JButton("Hey");
    panel1.add(temp);
    temp.addActionListener(this);
    //Pack up
    this.pack();
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.setVisible(true);
}

private JComponent makeTextPanel(String text) {
    JPanel panel = new JPanel();
    JLabel filler = new JLabel(text);
    filler.setHorizontalAlignment(JLabel.CENTER);
    panel.setLayout(new GridLayout(1, 1));
    panel.add(filler);
    return panel;
}

private JComponent makeInfoPanel() {
    JPanel panel = new JPanel();
    panel.setLayout(new GridLayout(1, 1));
    StringBuilder toPrint = new StringBuilder();
    SimpleReader in = new SimpleReader1L("data/Notice.txt");
    while (!in.atEOS()) {
        toPrint.append(in.nextLine() + "\n");
    }
    String toPrintString = toPrint.toString();
    JTextArea noticeText = new JTextArea(toPrintString);
    noticeText.setEditable(false);
    JScrollPane noticeTextScroll = new JScrollPane(noticeText);
    panel.add(noticeTextScroll);
    in.close();
    return panel;

}

@Override
public void registerObserver(PasswordManagerController controller) {
    this.controller = controller;
}

@Override
public void actionPerformed(ActionEvent event) {
    //Wait cursor
    this.setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));

    //What button was pressed
    Object source = event.getSource();
    if (source == this.temp) {
        this.controller.processTestEvent();
    }
}

0 个答案:

没有答案