如何强制JTextPane不去下一行?

时间:2013-02-06 19:25:44

标签: java swing jtextpane

我需要使用JTextPane作为JTextField.我的JTextPane在文本到达其边框时转到新行,但我希望它继续第一行而不是转到下一行。 怎么做?

1 个答案:

答案 0 :(得分:1)

有点脏,但是:

JTextPane textPane = new JTextPane ()
{
    @Override
    public Dimension getPreferredSize ()
    {
        Dimension size = super.getPreferredSize ();
        size.width = 1000000;
        return size;
    }

    @Override
    public Dimension getMaximumSize ()
    {
        Dimension size = super.getMaximumSize ();
        size.width = 1000000;
        return size;
    }

    @Override
    public Dimension getPreferredScrollableViewportSize ()
    {
        return super.getPreferredSize ();
    }

    @Override
    public boolean getScrollableTracksViewportWidth ()
    {
        return false;
    }
};

JFrame frame = new JFrame ();
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.getContentPane ().setLayout (new BorderLayout ());
frame.getContentPane ().add (
    new JScrollPane (textPane, JScrollPane.VERTICAL_SCROLLBAR_NEVER, JScrollPane.HORIZONTAL_SCROLLBAR_NEVER), BorderLayout.CENTER);
frame.pack ();
frame.setVisible (true);

您还需要以某种方式阻止用户输入换行符。