2011-01-15 27 views
2

JTextpaneでテキスト折り返しをトグルする方法を教えてください。JTextpaneのテキスト折り返しを切り替える

public JFrame mainjFrame = new JFrame("Text Editor"); 
    public JTextPane mainJTextPane = new JTextPane(); 
     public JScrollPane mainJScrollPane = new JScrollPane(mainJTextPane); 
     mainjFrame.add(mainJScrollPane); 
+0

あなたがのJTextFieldを使用していない理由をラップしたくない場合は? –

+1

@Stefanos Kalantzis JTextFieldはJTextpaneと同じように多くのスタイル機能を提供しているとは思いません。 – GlassGhost

+0

'JTextField'は単一行のテキストコンポーネントなので、単語ラップは意味を持ちません。おそらく 'JTextArea'を意味します。 –

答えて

10

No Wrap Text Paneを参照してください。

編集:

さて、あなたは行動を切り替えたい場合は、その後、あなたもgetScrollableTracksViewportWidth()の値をトグルする必要があります。 Scrollable Panelを参照してください。 FITとSTRETCHを切り替えることができるはずです。

+0

+1はうまくいきました。しかし、私はテキストの折り返しをトグルしようとしており、質問を更新しました。悪い質問を申し訳ありません。 – GlassGhost

9
package test; 

import java.awt.BorderLayout; 

import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.JScrollPane; 
import javax.swing.JTextPane; 

public class TestVisual extends JFrame { 

    private boolean wrapped; 
    private JButton toggleButton = null; 
    private JTextPane textPane = null; 
    private JPanel noWrapPanel = null; 
    private JScrollPane scrollPane = null; 

    public TestVisual() { 
     super(); 
     init(); 
    } 

    public void init() { 
     this.setSize(300, 200); 
     this.setLayout(new BorderLayout()); 

     wrapped = false; 

     textPane = new JTextPane(); 
     noWrapPanel = new JPanel(new BorderLayout()); 
     noWrapPanel.add(textPane); 

     scrollPane = new JScrollPane(noWrapPanel); 

     toggleButton = new JButton("wrap"); 
     toggleButton.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent e) { 
       if (wrapped == true){ 
        scrollPane.setViewportView(noWrapPanel); 
        noWrapPanel.add(textPane); 
        toggleButton.setText("wrap"); 
        wrapped = false; 
       }else { 
        scrollPane.setViewportView(textPane); 
        toggleButton.setText("unWrap"); 
        wrapped = true; 
       } 
      } 
     }); 

     this.add(scrollPane, BorderLayout.CENTER); 
     this.add(toggleButton, BorderLayout.NORTH); 
    } 
} 


私はあなたが...

を探しています。しかし、これはうまく機能している何のために他の方法を知りません。


(.. camickrの答えに基づいて、1)

+0

最初の5つのインポートを「import javax.swing。*; 」 – GlassGhost

+1

に置き換えることができます。私はEclipseの修正のインポートを使用しました。 :) –