伊莉討論區

標題: [已解決]GUI的一點問題.. [打印本頁]

作者: Julia.k    時間: 2012-3-15 07:12 PM     標題: [已解決]GUI的一點問題..

本帖最後由 Julia.k 於 2012-3-16 05:57 PM 編輯

想請問大大們,這是我的GUI程式碼:

問題是1.執行時要放大視窗才能看到元件
          2. txtArea9這個框框沒出現在視窗上
//////////////////////////////////////////////////////////////
import javax.swing.*;
import java.awt.event.*;

class CFrame extends JFrame {
JButton clear=new JButton("C");
    JButton click=new JButton("T");

    JTextField txtArea1=new JTextField();
    JTextField txtArea2=new JTextField();
    JTextField txtArea3=new JTextField();
    JTextField txtArea4=new JTextField();
    JTextField txtArea5=new JTextField();
    JTextField txtArea6=new JTextField();
    JTextField txtArea7=new JTextField();
    JTextField txtArea8=new JTextField();
    JTextField txtArea9=new JTextField();

CFrame(){
        
        setLocation(100,120);
        setSize(400,400);
        setVisible(true);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      
      clear.setBounds(400, 50, 100, 20);
        add(clear);
              
        click.setBounds(400, 100, 100, 20);
        add(click);
              
        txtArea1.setBounds(28,60,300,40);
        txtArea1.setEditable(false);
        add(txtArea1);      
        
        txtArea2.setBounds(28,90,300,40);
        txtArea2.setEditable(false);
        add(txtArea2);
            
        txtArea3.setBounds(28,120,300,40);
        txtArea3.setEditable(false);
        add(txtArea3);
            
        txtArea4.setBounds(28,150,300,40);
        txtArea4.setEditable(false);
        add(txtArea4);
            
        txtArea5.setBounds(28,180,300,40);
        txtArea5.setEditable(false);
        add(txtArea5);
            
        txtArea6.setBounds(28,210,300,40);
        txtArea6.setEditable(false);
        add(txtArea6);
              
        txtArea7.setBounds(28,240,300,40);
        txtArea7.setEditable(false);
        add(txtArea7);
            
        txtArea8.setBounds(28,270,300,40);
        txtArea8.setEditable(false);
        add(txtArea8);
            
        txtArea9.setBounds(28,300,300,40);
        txtArea9.setEditable(false);
        add(txtArea9);
        
}




作者: 22616846    時間: 2012-3-15 09:03 PM

第1個問題是要把 setVisible(true); 調到 setLocation(100,120);這行的上面
第2個問題 我還沒弄出來 不過不是txtArea9的問題 因為我把它註解調後 會變成txtArea8
有問題 以此類推



作者: good5209    時間: 2012-3-16 02:09 AM

本帖最後由 good5209 於 2012-3-16 02:10 AM 編輯

1.因為你的按鈕放在視窗範圍之外,請調整setSize();修改視窗的尺寸

2.
JFrame預設的contentPane的layout是BorderLayout
而你把元件用add()加進去時沒有指定方位,所以最後一個加進去的元件其實被設定成Center方位,也就是整個視窗的範圍就是該元件
在最後再add進一個JButton就可以看出來

所以請用
  1. getContentPane().setLayout(null);
複製代碼
指定使用絕對位置layout
作者: Julia.k    時間: 2012-3-16 05:56 PM

good5209 發表於 2012-3-16 02:09 AM
1.因為你的按鈕放在視窗範圍之外,請調整setSize();修改視窗的尺寸

2.

謝大大 ,都修正好了!
作者: Julia.k    時間: 2012-3-16 05:58 PM

22616846 發表於 2012-3-15 09:03 PM
第1個問題是要把 setVisible(true); 調到 setLocation(100,120);這行的上面
第2個問題 我還沒弄出來 不過不 ...

是的,第一點已修正!  




歡迎光臨 伊莉討論區 (http://a401.file-static.com/) Powered by Discuz!