我的JTextPane没有更新?

时间:2017-07-09 10:09:46

标签: java swing polymorphism jtextpane

我的TextPane没有更新,我认为这是因为我的班级结构。

我的主要问题是如何在不更改此结构的情况下更新TextPane,因为我喜欢它?

请记住,我只是发布相关代码。

首先,我们开始创建JFrame

public class Frame extends JFrame {

    public Frame() throws HeadlessException {
        create Frame();
    }

    public void createFrame() {
        JSplitPane splitPane = content.determineJSplitpane();
        add(splitPane);
    }
}

下一个是我的determineSplitpane。我需要这种方法来定义3个区域。

public class KalenderFrameSplit {
    private FrameLeft left = new KalenderFrameLinks();
    private FrameMiddle middle = new KalenderFrameMitte();
    private FrameRight right = new KalenderFrameRechts();

    public JSplitPane determineJSplitpane() {
        JPanel leftPanel = this.left.leftArea();
        JScrollPane centerPanel = this.middle.middleArea();
        JPanel rightPanel = this.right.rightArea();

        JSplitPane splitPane1 = new JSplitPane();
        JSplitPane splitPane2 = new JSplitPane();
        splitPane1.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
        splitPane1.setRightComponent(splitPane2);
        splitPane1.setLeftComponent(leftPanel);
        splitPane1.setEnabled(true);
        splitPane1.setDividerSize(3);

        splitPane2.setOrientation(JSplitPane.HORIZONTAL_SPLIT);
        splitPane2.setRightComponent(rightPanel);
        splitPane2.setLeftComponent(centerPanel);
        splitPane2.setDividerLocation(-2000);
        splitPane2.setEnabled(true);
        splitPane2.setMinimumSize(new Dimension(4000, 0));
        splitPane2.setDividerSize(3);

        return splitPane1;
    }
}

最后一个是我的中段课程。我使用单选按钮设置输出,但我已经通过设置TextPane的值的方法轻松实现了。后来我必须在文本中添加样式。我的老师告诉我,我应该在Document中使用TextPane并自动更新,但我不知道该怎么做。

public class FrameMiddle {

    JTextPane textPane = new JTextPane();

    public JScrollPane middleArea() {
        JPanel panel = new JPanel(new BorderLayout());

        Document document;

        this.textPane.setText("");
        //this.textPane.setDocument();

        this.textPane.setLayout(new BorderLayout(200, 200));
        this.textPane.setEditable(false);
        panel.add(textPane);
        panel.setBackground(Color.white);

        JScrollPane scrollPane = new JScrollPane();
        scrollPane.setViewportView(panel);
        scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
        return scrollPane;
    }

    public void getContentOfTextPane() {
        this.textPane.setText("Hello World");
    }

}

我希望你们能帮助我。我知道public void getContentOfTextPane没有被调用,但我想问这个问题尽可能干净。因为我问这个问题,但我的问题不是很干净,所以我没有得到任何解决方案。

0 个答案:

没有答案