2015-01-11 5 views
0

글쎄 기본적으로 내 코드에 문제가 있는지 모르겠다. JTextAre에 스크롤바를 넣으려고하는데 JTextArea가 스크롤바 대신 크기 조정을 계속한다. 나는 "t1"을 private JTextArea로 선언했다. private JScrollPane 필드로서 「s1」를 사용합니다. 또한 GridBagConstraints가 있고 jp는 JPanel입니다. 여기 내 코드는`JTextArea에 스크롤 막대를 표시하는 지원?

gbc.insets = new Insets(10,0,0,0); 
    gbc.gridx=1; 
    gbc.gridy=2; 
    t1 = new JTextArea(5,15); 
    s1 = new JScrollPane(t1, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 

    jp.add(s1,gbc); 
+1

이 당신이 * * 표시하지 않은 코드에서 문제가 될 수 있어야합니다. 만약 내가 이것을 넣어 (GridBagConstraint gbc = new GridBagConstraint();)를 JPanel을 확장하는 클래스에 추가하고 이것을 JFrame에 추가하면 완벽하게 작동합니다. – laune

+0

JPanel에 추가하고 있는데, 클래스가 JFrame을 확장합니다. 아마도 그게 문제입니까? 편집 : 아니, 그게 아니야. – user4442652

+0

죄송합니다. 문법 ... this.add (s1, gbc)를 수행하는 JPanel 하위 클래스가 있는데이 JPanel 객체가 JFrame에 추가되었습니다. (JFrame에는 JPanel에 스크롤 된 JTextArea가 포함되어 있습니다.) 답변을 사용하여 데모를 추가했습니다. – laune

답변

0

작동으로이 데모입니다 :

public class White extends JPanel { 
    public White(){ 
     setBackground(Color.BLACK); 
     GridBagConstraints gbc = new GridBagConstraints(); 
     gbc.insets = new Insets(10,0,0,0); 
     gbc.gridx=1; 
     gbc.gridy=2; 
     JTextArea t1 = new JTextArea(5,15); 
     JScrollPane s1 = new JScrollPane(t1, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 
     this.add(s1,gbc); 
    } 
    public void paint(Graphics g) { 
     super.paint(g); 
     g.setColor(new Color(0xFF, 0xFF, 0xFF)); 
    } 
    public static void main(String[] args){ 
     JFrame frame = new JFrame(); 
     frame.add(new White()); 
     frame.setTitle("Hello World"); 
     frame.setSize(600, 400); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setVisible(true); 
    } 
} 
관련 문제