🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: cn.bbs.comp.lang.java
Article #21570

Java ͼ���û��������5���񡢹�������Ͳ��ֹ���

#21570
From: ����è->�ú�ѧϰ...
Date: Thu, 27 Nov 2003 16:40
123 lines
13511 bytes
��. ���񡢹�������Ͳ��ֹ���
�������� (JPanel) �͹������� (JScrollPane) ��ͼ���û���������д������ڸ�����
���ڴ����ϵIJ��úͰ��š�������ν�IJ��úͰ��ţ����Dz��� (Layout)����˲��ò���
˵˵���֡�
���������뵽����(ͨ��Ϊ���ڵ�) ���������һ����˳��͹�����ã�ʹ֮����������
�ۣ�����Dz��֡������ɲ��ֹ����� (Layout Manager) �����?��ô��������ʲôʱ
��Ӧ��ʹ�ò��ֹ�������Ӧ��ѡ�����ֲ��ֹ��������ָ�����ʹ�ò��ֹ������أ�
���������������һ�����ڣ�������Ҫ�����������ġ�Ϊ�˹������Щ����IJ���
�����Ǿ�Ҫʹ�ò��ֹ�����������˵�����һ���򵥵ı༭��������༭����ֻ��Ҫ��
��������ť��һ�������ı�����Щ������� Java �Լ����ⰲ���أ����ǰ���һ����
λ�ù�ϵ�Ϲ淶�İ����أ���ȻӦ��ѡ����ߡ���ô��Ϊ�˰���һ����λ�ù�ϵ������
Щ��������Ǿ���Ҫ�õ����ֹ������ˡ�
����Ȼ������������һ��ѡ���⡪��ʹ�����ֲ��ֹ�������Ϊ�ˣ���������Ҫ֪����Щ
ʲô���ֹ����������ǵIJ����ص���ʲô�����õIJ��ֹ������У� FlowLayout��Borde
rLayout��GridLayout��BoxLayout �ȣ����� FlowLayout �� BorderLayout ��ã���
����ҪҲ��̸̸ֻ�����ֲ��ֹ������������б�˵�����ǵIJ����ص㣺
���ֹ����� �����ص�
FlowLayout ������������Ҵ��ϵ��µ�˳���������У�һ�в��ܷ������۵���һ�м�
�����
BorderLayout ������������ϡ��������������������ã�ÿ���������ֻ�ܷ���һ��
���
GridLayout ����һ���޿��ߵı��ÿ����Ԫ���з�һ�����
BoxLayout ����������õ�һ�л���һ�к��ӣ�ÿ��������һ�����
�����������ı༭��Ϊ�����ѡ�� FlowLayout����ô������ť��һ�������ı���ͻ�
������һ�С�����Ȼ���Ǵ����㹻��������������խһЩ������ܷ��������У�
��һ����������ť����ڶ����Ƕ����ı��򡪡�����������������������խһЩ
���Ϳ��ܷ��������У���һ�к͵ڶ��зֱ����һ����ť�������з��ö����ı�����
�ˣ����ڴ�С���Ըı䣬��ô��������λ�ù�ϵҲ�������Ŵ��ڴ�С�ı仯���
�������ԣ�FlowLayout �����á���ʵ������ٵ�����У��󲿷ֶ����õ� FlowLayout
��������Ϊ����û��Ҫ������IJ��֡�
�������ѡ�� BorderLayout �����������أ����ǿ������ż���һ������ (JPanel��
�Ժ󽲽�)������������ť���������У�Ȼ�����������뵽 BorderLayout �ı��� 
(���ϲ�)���ٽ������ı�����뵽 BorderLayout �в����������ʹ�� FlowLayout ��
�ڶ��ֿ��ܣ������������������ң����ı䴰�ڴ�С�����ǵ�λ�ù�ϵ��Ȼ�DZ�-��
�Ĺ�ϵ��������֮�ı䡣
����ʣ�µ����ֲ��ֹ����������Դ��� (JPanel) ����ϣ�Ҳ�ܹ��ܺõİ��������༭
��������������������������ǵ�ʹ����Ϊ����һЩ�����ԾͲ����ˡ�����ͽ�����
��ʹ�� FlowLayout �� BorderLayout��
�����κβ��ֹ�����������Ҫ���������ϣ����� JFrame �� Content Pane ������Ҫ˵
�� JPanel ������������������ṩ��һ�� setLayout ���������������ı��䲼�ֹ���
���ġ�Ĭ������£�JFrame �� Content Pane ʹ�õ��� BorderLayout���� JPanel ʹ
�õ��� FlowLayout���������������Ƕ����Ե������ǵ� setLayout �������ı��䲼
�ֹ����������������ı༭���У�����Ҫ�ô��� (JFrame ���󣬼���Ϊ frame) ʹ�� 
BorderLayout���Ϳ���ʹ�� frame.getContentPane().setLayout(new BorderLayout()
); ���ı��䲼�ֹ�����Ϊһ���µ� BorderLayout ����
����Ȼ�����ǶԲ��ֹ�������ֱ�Ӳ����ͽ����ˣ�ʣ�µ�ֻ��Ҫ����������������
���ʹ�� FlowLayout������ֻ��Ҫʹ�������� add(Component c) ����������������
�����ǣ����ʹ�� BorderLayout �Ͳ�һ���ˣ���ΪҪָ���ǰ������ӵ��ĸ�����
�������Ǿ�ʹ�������� add(Component c, Object o) �������������÷����ĵڶ���
�������ָ����ӵ��������õġ����磬�����༭����Ҫ���һ�������ı��� Borde
rLayout ���в����Ϳ����� frame.getContentPane().add(new JTextArea(5, 15), Bo
rderLayout.CENTER) ��ʵ�֡�
����BorderLayout ���������ֱ�����������������������ģ�
BorderLayout.EAST   ��
BorderLayout.SOUTH   ��
BorderLayout.WEST   ��
BorderLayout.NORTH   ��
BorderLayout.CENTER   ��
�����ղ��Ѿ��ᵽ��ʹ�� JPanel��JPanel ��Ϊһ�����������԰���һЩ�����Ȼ��
��� JPanel ������Ϊһ�������ӵ���һ������ (����������) �С����������ʲô
�ô��أ�
�������治���ᵽ BorderLayout ��һ��������ֻ�����һ������𣿵������ǵı༭
����Ҫ���������ť����ı�������ô�죿����������У����Ǿ����õ�һ�� JPanel 
��������������ť��Ȼ���ٽ���� JPanel ������Ϊһ�������ӵ����ò��ֹ�����Ϊ
 BorderLayout �� Content Pane ��
��������˵�������ֹ������IJ����ص��ʱ�򣬼���ÿһ�ֶ���һ������ֻ�����һ��
���������������Ӷ�������һ�������ʱ�򣬾�Ҫ�õ� JPanel �ˡ����û����
�ף��Ժ�һ�γ�����ܸ�������⡣
������������� (JScrollPane) �أ�����һ���ܹ��Լ������������������ͨ��ֻ����
һ����������Ҹ���������Ĵ�С�Զ�������������������潲 JTextArea ��ʱ����
����JTextAera �����û�����������Զ���չ��С�������״��Ƹ�����IJ��֡����ǣ�
������ǽ��������һ�����������У������չ�Ͳ���ֱ�ӷ�ӳ�ڴ�С�ı仯�ϣ����
��ӳ�ڹ�������Ĺ������ϣ�Ҳ�Ͳ�����Ƹ�����IJ����ˡ��Ժ�����ӻ����������
����
�����Dz��ǵ��ſ������ˣ��ã��������ˣ�
  /**
 * TestPanels.java
 * @author Fancy
 */
import javax.swing.*;
import java.awt.*;
public class TestPanels extends JFrame {
    public TestPanels() {
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        JPanel panel = new JPanel();
        for (int i = 0; i < 2; i++) {
            panel.add(new JButton("Button 00" + i));
        }
        JTextArea textArea = new JTextArea(5, 15);
        textArea.setLineWrap(true);
        JScrollPane scrollPane = new JScrollPane(textArea);
        getContentPane().add(panel, BorderLayout.NORTH);
        getContentPane().add(scrollPane, BorderLayout.CENTER);
        pack();
    }
    public static void main(String[] args) {
        TestPanels tp = new TestPanels();
        tp.show();
    }
}
����������ӵ����н������ͼ������������Ҫ�Ľ������������ť��������һ��
���Թ����Ķ����ı���
�������������Ȳ�����һ�� JPanel ���� (JPanel panel = new JPanel();)��Ȼ����
����ť�������� (panel.add ...)��Ȼ�������һ�������ı��� (JTextArea textArea
 = new JTextArea(5, 15);)����ʹ��һ������������������ (JScrollPane scrol
lPane = new JScrollPane(textArea);)��ʹ֮��Ϊ���Թ����Ķ����ı����������
���� (JPanel ����� JScrollPane ����) �ֱ���ӵ��˴��ڵı��� (getContentPane
().add(panel, BorderLayout.NORTH);) ���в� (Ҳ����ʣ�ಿ�֣�getContentPane()
.add(scrollPane, BorderLayout.CENTER);)��
���������е㲻�Ծ�����ʲô�أ����ˣ�����û������ Content Pane �IJ��ֹ�����Ϊ
 BorderLayout ����Ϊʲô�����ղŲ���˵����JFrame �� Content Pane ��Ĭ�ϲ���
���������� BorderLayout�����Բ����������ˡ�
�������ˣ���Java ��ͼ���û�������ơ��͸�һ�����ˡ�����ƪ�����ޣ�����˵�Ķ���
����֪ʶ���д˻���Ƹ���һ���ͼ���û�����Ҳ�Ͳ��������ˣ�
  
--
��......�����ѱ���ң����ҵ�����ͻ�������⣬��ĽŲ�����ø������˵IJ�һ
�������˵ĽŲ��������Ѹ�ٶ㵽�ص��£�����ĽŲ������������һ������ٻ�
����Ѩ��Ȼ���㿴�������DZߵ����������Ҳ���������Ӷ�����˵һ������Ҳû
�С������޷����Ҳ������룬��ʵ�ںܿɱ������ǣ�����һͷ���ɫ��ͷ���������ѱ
���ң��Ǹû��ж������ð������ɫ�����ӻ����������㣬��Ҳ��ϲ�����������䴵
������������                                              ------��С���ӡ�
�� ��Դ:����ˮ˼Դ bbs.sjtu.edu.cn��[FROM: 211.80.91.3]
Technical Details
Message-ID: <49QaQ6$A4P@bbs.sjtu.edu.cn>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!c03.atl99!sjc70.webusenet.com!news.webusenet.com!news.bylinux.net!news.ccie.net.cn!SJTU

Show Full Headers
Complete Article Headers
X-Google-Language: Chinese,GB
X-Google-Thread: f6cb0,f1e801bdd7145793,start
X-Google-Attributes: gidf6cb0,public
X-Google-ArrivalTime: 2003-11-27 08:41:02 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!c03.atl99!sjc70.webusenet.com!news.webusenet.com!news.bylinux.net!news.ccie.net.cn!SJTU
From: bocoo.bbs@bbs.sjtu.edu.cn (����è->�ú�ѧϰ...)
Newsgroups: cn.bbs.comp.lang.java
Subject: Java ͼ���û��������5���񡢹�������Ͳ��ֹ���
Date: 27 Nov 2003 16:40:33 GMT
Organization: ��ˮ˼Դ
Message-ID: <49QaQ6$A4P@bbs.sjtu.edu.cn>
Mime-Version: 1.0
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: 8bit
X-Filename: Java/M.1069951206.A
Lines: 123