2017-04-08 21 views
0

私はスクロール可能なテキストエリアを作成しようとしています(スタックオーバーフローのように書いています)。これは、スクロールペインとテキスト領域が相互に排他的であるかのように思えると私はJTextAreaのスクロールバーが機能しない理由は何ですか?

package Notepad; 

import java.awt.EventQueue; 
import java.awt.Font; 

import javax.swing.JFrame; 
import java.awt.BorderLayout; 

import javax.swing.JTextArea; 
import javax.swing.JScrollBar; 

public class test { 

    private JFrame frame; 
    private Font f = new Font(null); 


    public static void main(String[] args) { 
     EventQueue.invokeLater(new Runnable() { 
      public void run() { 
       try { 
        test window = new test(); 
        window.frame.setVisible(true); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 
      } 
     }); 
    } 

    public test() { 
     initialize(); 
    } 

    private void initialize() { 

     frame = new JFrame(); 
     frame.setBounds(100, 100, 450, 300); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.getContentPane().setLayout(new BorderLayout(0, 0)); 


     JTextArea textArea = new JTextArea(); 
     frame.getContentPane().add(textArea, BorderLayout.CENTER); 
     textArea.setLineWrap(true); 
     textArea.setFont(f.deriveFont(40f)); 


     JScrollBar scrollBar = new JScrollBar(); 

     frame.getContentPane().add(scrollBar, BorderLayout.EAST); 



    } 

} 
+0

[スクロールペインの使用方法](https://docs.oracle.com/javase/tutorial/uiswing/components/scrollpane.html)または[JScrollbarを使用してJFrameをスクロールするにはどうすればよいですか?](http: //stackoverflow.com/questions/5928514/how-can-i-scroll-my-jframe-using-the-jscrollbar) – Obicere

+0

まだ理解していない。ありがとうございました。私は上記のリンクを試し続けます。 @Obicere –

答えて

1

使用JScrollPaneではなくJScrollBar

間違っ:

JScrollBar scrollBar = new JScrollBar(); 

右:

JScrollPane scroller = new JScrollPane(textArea); 

あなたはとてもように、このScrollPaneのサイズを設定することができます

Dimension size = new Dimension (0, 50); 
    scroller.setPreferredSize(size); 

JScrollPanesを使用する場合は、かっこで囲む必要がある場所に置くか、表示されません。

1
JTextArea textArea = new JTextArea(); 
textArea.setLineWrap(true); 
textArea.setFont(f.deriveFont(40f)); 

JScrollPane scrollPane = new JScrollPane(textArea); 
frame.getContentPane().add(scrollPane, BorderLayout.CENTER); 
0

OMGごめんみんな、それらの間の接続を作成したいと思います。 JScrollPaneではなくJScrollBarをインポートしました。皆さん、ありがとうございました。私はこの修正をテストして、あなたに連絡します。

編集:

これは機能します。君たちありがとう!!!

関連する問題