2017-04-08 5 views
0

Ich versuche einen scrollbaren Textbereich zu erstellen (ähnlich dem, in dem ich gerade schreibe, wie im Stapelüberlauf). Es scheint, als ob der scrollpane und der Textbereich sich gegenseitig aus, und ich möchte eine Verbindung zwischen ihnenBildlaufleiste funktioniert nicht für JTextArea, warum?

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

Siehe [Verwenden von Bildlauffenstern] (https://docs.oracle.com/javase/tutorial/uiswing/components/scrollpane.html) oder [Wie kann ich meinen JFrame mit der JScrollbar scrollen?] (Http: //stackoverflow.com/questions/5928514/how-can-i-scroll-my-jframe-using-the-jscrollbar) – Obicere

+0

Immer noch Schwierigkeiten, es zu verstehen. Vielen Dank. Ich werde es mit den obigen Links weiter versuchen. @Obicere –

Antwort

1

Verwendung JScrollPane statt JScrollBar

Falsch:

JScrollBar scrollBar = new JScrollBar(); 

Rechts:

JScrollPane scroller = new JScrollPane(textArea); 

Sie die Größe dieses ScrollPane wie so einstellen:

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

HINWEIS: Wenn Sie JScrollPanes verwenden, achten Sie darauf, dass Sie es in Klammern setzen oder es wird nicht angezeigt.

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 sorry guys erstellen. Ich habe JScrollBar nicht JScrollPane importiert. Danke euch allen. Ich werde diesen Fix testen und auf Sie zurückkommen.

Bearbeiten:

Es funktioniert. Danke Jungs!!!

Verwandte Themen