2016-09-20 45 views
0

好的,我已閱讀了幾乎所有關於此主題的主題,但他們都讓我感到困惑,說實話,他們都沒有用我的代碼。 我創建了一個簡單的文本區域TextArea上的JScrollPane

JTextArea ttt=new JTextArea(""); 
ttt.setSize(500, 300); 
ttt.setLocation(10, 100); 
ttt.setEditable(false); 

然後用這條線創建的滾動面板,並把它添加到文本區

JScrollPane sp=new JScrollPane(ttt,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 

並將其添加到我的JFrame事後

myForm.add(sp); 

由於我閱讀了大部分的線程,這段代碼應該可以工作,但事實並非如此。在我嘗試添加ScrollPane之前,TextArea顯示在框架上,但現在整個TextArea甚至沒有顯示。謝謝。

編輯;這裏是我的主要例如,不工作

public class Test2 { 

    public static void main(String[] args) { 
     JFrame myForm=new JFrame("Connect-4"); 
     myForm.setLayout(new GridLayout(4,2)); // assign layout 
     myForm.setSize(new Dimension(500,400)); // size 

     JTextArea ttt = new JTextArea (3,3); 
     ttt.setEditable(false); 
     //ttt.setSize(500, 300); 
     //ttt.setLocation(10, 100);  
     JScrollPane sp=new JScrollPane(ttt,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 
     myForm.add(sp); 

     myForm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     myForm.setLayout(null); 
     myForm.setVisible(true); 

    } 
} 

編輯2; 2 Jlabel,2文本框,按鈕和文本區 image

編輯3;

public class Test2 { 

    public static void main(String[] args) { 
       JButton button=new JButton("Add"); 
     //button.setSize(100, 50); 
     //button.setLocation(450, 40); 


     JTextField tf1=new JTextField(); 
     tf1.setSize(150, 30); 
     tf1.setLocation(70, 52); 


     JLabel l1=new JLabel("Name"); 
     //l1.setSize(51, 50); 
     //l1.setLocation(10, 40); 
     l1.setFont(new Font("", Font.PLAIN, 20)); 


     JTextField tf2=new JTextField(); 
     tf2.setSize(150, 30); 
     tf2.setLocation(285, 52); 

     JLabel l2=new JLabel("Phone"); 
     l2.setSize(55, 50); 
     l2.setLocation(225, 40); 
     l2.setFont(new Font("", Font.PLAIN, 20)); 

     ////// 
     JTextArea ttt=new JTextArea(""); 
     ttt.setSize(500, 300); 
     ttt.setLocation(10, 100); 

     JPanel panel1=new JPanel(new FlowLayout()); 
     panel1.add(l1); 
     panel1.add(tf1); 
     panel1.add(l2); 
     panel1.add(tf2);  
     panel1.add(button); 


     JPanel panel2=new JPanel(); 
     panel2.add(new JButton("FSFSD")); 
     panel2.add(new JButton("RIGHT")); 

     JPanel all=new JPanel(new BorderLayout()); 
     all.add(panel1, BorderLayout.NORTH); 
     all.add(ttt, BorderLayout.CENTER); 

     JFrame frame=new JFrame(); 
     frame.setContentPane(all); 
     //frame.add(all); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     frame.setSize(400, 500); 
     frame.setVisible(true); 


    } 
} 
+1

代碼中語句的位置對於確保GUI正常工作非常重要。有關如何組織代碼的詳細代碼將幫助我們爲您提供幫助。 –

+0

@YoungMillie好的,補充! – Ahmed

+0

擺脫'myForm.setLayout(null);'到'main'方法的末尾。 – Thomas

回答

0

您設置版式與

myForm.setLayout(new GridLayout(4,2)); 

,然後用

myForm.setLayout(null); 

刪除它刪除此行,你會看到你的文本區域。

您可能還想在顯示幀之前調用myFrame.pack()

+0

好了,但是如何設置它的位置,就像我以前用textarea.setPosition()做的那樣? – Ahmed

+0

@Ahmed佈局經理爲你做。選擇一個適合您的GUI的佈局管理器,它將負責所有職位。不要手動分配位置。 – user1803551

+0

@Ahmed注意語言。佈局管理員爲您安排組件,因爲手動設置組件是不好的。你的問題沒有提到有關定位文本區域的任何內容,也沒有向我們展示GUI應該是什麼樣子,所以目前沒有人能夠幫助你。 – user1803551

0

實例化的文本區域如下

JTextArea ttt = new JTextArea (3,3); 
ttt.setEditable(false); 
JScrollPane sp=new JScrollPane(ttt,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); 
myJFrame.add(sp); 

驗證您的JFrame包含一個合適的layaut也寬度 和高度例如

myJFrame.setLayout(new GridLayout(4,2)); // assign layout 
myJFrame.setSize(new Dimension(500,400)); // size 
+0

仍然無法正常工作,我在原始文章中添加了代碼,如果您可以看一下 – Ahmed