线程中的异常" AWT-EventQueue-0" java.lang.ClassCastException:javax.swing.Box

时间:2014-08-19 09:12:28

标签: java swing boxlayout

我有两个JPanels leftTextField和rightTexTField,它们都包含一个FileBox实例:

 public class FileBox extends Box {
    private Box content;

    public FileBox(String text) {
        super(3); // ?
        content = Box.createVerticalBox();
        init(text);     
    }

    private void init(String text) {
        JTextArea editor = new JTextArea();
        editor.setDragEnabled(true);            
        editor.setText(text);
        editor.setEditable(false);
        JScrollPane scrollPane = new JScrollPane(editor);

        content.add(Box.createVerticalStrut(5));
        content.add(scrollPane);
        content.add(Box.createVerticalStrut(5));
    }

    public Box get() {
        return content;
    }

    public void set(Box content) {
        this.content = content;
    }
}

我还有两个带有actionListeners的按钮,并且一旦触发器被触发,就想执行一些代码。我试过这样的事情:

@Override
    public void actionPerformed(ActionEvent e) {
        if(e.getSource().equals(buttonToLeft)) {
            FileBox left = (FileBox) leftTextPanel.getComponent(0);
            FileBox right = (FileBox) rightTextPanel.getComponent(0);           

            left.set(right.get());
        }
}

但是我确实收到标题中发布的错误消息,我不明白。 FileBox是我的leftTextPanel的一个组件,因为我用leftTextPanel.add(new FileBox())等添加它。是否有任何理由为什么它现在是Box的一个实例而我无法投射它?我该如何解决这个问题?

0 个答案:

没有答案