angellover3212 2015-11-27 10:12 采纳率: 0%
浏览 4771

Exception in thread "AWT-EventQueue-0"

 import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.File;
import java.io.IOException;

public class PipeFilterTestGui extends JPanel
{

    private JScrollPane btnPane;
    private JSplitPane splitPane;
    private JSplitPane rightSplitPane;
    private JTextArea originalTxt;
    private JTextArea resultTxt;
    private JScrollPane originPane;
    private JScrollPane resultPane;
    private JLabel filelbl;
    private JPanel buttonPanel;
    private JComboBox cmbFileList;
    static final String PROCESS = "Process";
    static final String EXIT = "Exit";
    static final String ORIGINALFILES = "OriginalFiles/";
    static final Dimension minimumSize = new Dimension(230, 200);

    public PipeFilterTestGui()
    {
        super(new GridLayout(1, 0));
        resultTxt = new JTextArea("Encrypted File Text\n\n", 6, 20);
        originalTxt = new JTextArea("Original File Text: \n\n", 6, 20);
        buildUpScrollGUI();
    }

    private void buildUpScrollGUI()
    {
        // Setup buttonPanel, which contains all buttons and
        // will be used in btnPane below
        setUpButtonPanel();

        btnPane = new JScrollPane(buttonPanel);
        btnPane.setMinimumSize(minimumSize);

        resultPane = new JScrollPane(resultTxt);
        originPane = new JScrollPane(originalTxt);

        rightSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
        rightSplitPane.setLeftComponent(originPane);
        rightSplitPane.setRightComponent(resultPane);
        rightSplitPane.setDividerLocation(190);

        splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);
        splitPane.setLeftComponent(btnPane);
        splitPane.setRightComponent(rightSplitPane);

        splitPane.setDividerLocation(220);
        splitPane.setPreferredSize(new Dimension(600, 250));

        add(splitPane);
        setSize(new Dimension(600, 400));
        setVisible(true);
    }

    private void setUpButtonPanel()
    {

        cmbFileList = new JComboBox();
        String[] cl = extractFileList();
        setupFileList(cmbFileList, cl);

        filelbl = new JLabel("Files:");

        // Create buttons
        JButton srchButton = new JButton(PROCESS);
        srchButton.setMnemonic(KeyEvent.VK_S);
        JButton exitButton = new JButton(EXIT);
        exitButton.setMnemonic(KeyEvent.VK_X);

        ButtonListener btnListener = new ButtonListener();

        // add action Listener
        srchButton.addActionListener(btnListener);
        exitButton.addActionListener(btnListener);

        buttonPanel = new JPanel();

        GridBagLayout gridbag = new GridBagLayout();
        buttonPanel.setLayout(gridbag);
        GridBagConstraints gbc = new GridBagConstraints();

        buttonPanel.add(filelbl);
        buttonPanel.add(cmbFileList);
        buttonPanel.add(srchButton);
        buttonPanel.add(exitButton);

        gbc.insets.top = 5;
        gbc.insets.bottom = 5;
        gbc.insets.left = 5;
        gbc.insets.right = 5;

        gbc.anchor = GridBagConstraints.EAST;

        gbc.gridx = 0;
        gbc.gridy = 0;
        gridbag.setConstraints(filelbl, gbc);
        gbc.anchor = GridBagConstraints.WEST;
        gbc.gridx = 1;
        gbc.gridy = 0;
        gridbag.setConstraints(cmbFileList, gbc);
        gbc.anchor = GridBagConstraints.EAST;
        gbc.gridx = 0;
        gbc.gridy = 1;
        gbc.insets.left = 2;
        gbc.insets.right = 2;
        gbc.insets.top = 25;
        gbc.anchor = GridBagConstraints.EAST;
        gbc.gridx = 0;
        gbc.gridy = 3;
        gridbag.setConstraints(srchButton, gbc);
        gbc.anchor = GridBagConstraints.WEST;
        gbc.gridx = 1;
        gbc.gridy = 3;
        gridbag.setConstraints(exitButton, gbc);
    }

    /* ========================================= */
    /* Get a selected file name from User GUI */
    /* ========================================= */
    public String getSelectedFile()
    {
        return (String) cmbFileList.getSelectedItem();
    }

    /* ================================================ */
    /* Extract file names from a diectory on your */
    /* computer */
    /* ================================================ */
    public String[] extractFileList()
    {
        File f = new File(ORIGINALFILES);
        String[] fileNames = f.list();
        return fileNames;
    }

    /* ============================================== */
    /* Add car list to combox cmbFileList. Both */
    /* objects cmbFileList and files are passed */
    /* in from parameters. */
    /* ============================================== */
    public void setupFileList(JComboBox cmbFileList, String[] files)
    {
        for (int k = 0; k < files.length; k++)
        {

            cmbFileList.addItem(files[k]);
        }
    }

    class ButtonListener implements ActionListener
    {
        String carPrice;

        public void actionPerformed(ActionEvent e)
        {
            String searchResult = null;

            if (e.getActionCommand().equals(EXIT))
            {
                System.exit(1);
            }
            if (e.getActionCommand().equals(PROCESS))
            {
                String selectedFile = getSelectedFile();
                try
                {
                    originalTxt.append("File Name: " + selectedFile + "\n\n");
                    resultTxt.append("From file: " + selectedFile + "\n");
                    AssemblyOfPipeLines apline = new AssemblyOfPipeLines();
                    apline.assembly(selectedFile, originalTxt, resultTxt);
                } catch (IOException ex)
                {
                }
            }
        }
    } // End of class ButtonListener

    private static void createAndShowGUI()
    {
        JFrame.setDefaultLookAndFeelDecorated(true);
        JFrame frame = new JFrame("Pipes and Filters Architecture demo- Legacy File Update");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        PipeFilterTestGui newContentPane = new PipeFilterTestGui();
        newContentPane.setOpaque(true);
        frame.setContentPane(newContentPane);

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

    static public void main(String argv[])
    {
        javax.swing.SwingUtilities.invokeLater(new Runnable()
        {
            public void run()
            {
                createAndShowGUI();
            }
        });
    }
}

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at PipeFilterTestGui.setupFileList(PipeFilterTestGui.java:150)
at PipeFilterTestGui.setUpButtonPanel(PipeFilterTestGui.java:67)
at PipeFilterTestGui.buildUpScrollGUI(PipeFilterTestGui.java:37)
at PipeFilterTestGui.(PipeFilterTestGui.java:30)
at PipeFilterTestGui.createAndShowGUI(PipeFilterTestGui.java:191)
at PipeFilterTestGui.access$2(PipeFilterTestGui.java:185)
at PipeFilterTestGui$1.run(PipeFilterTestGui.java:205)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)

还有其他几个类。 需要上传吗?

  • 写回答

2条回答 默认 最新

  • devmiao 2015-11-28 21:19
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 ubuntu系统下挂载磁盘上执行./提示权限不够
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥30 3天&7天&&15天&销量如何统计同一行