Java中Swing编程(单JFrame多JSplitPane)
来源:互联网 发布:淘宝助理二次验证失败 编辑:程序博客网 时间:2024/06/04 23:22
笔者今日才自学到Swing编程,终于摆脱了控制台有点小激动,今天编了一个模拟QQ的聊天窗口的小程序贴在这里供大家批评指正。
说明:
1.这只是实现了这个界面,其中按钮(除了滚动条)都没有深层的作用;
2.理解时,一定要把JSplitPane看作是一个可以被分割的容器,而不能把它看作是一个分隔符;
下面是效果图:
/** * 演示QQ聊天窗口的布局管理 * 重点思想:一定要把JSplitPane看作是一个可以被分隔的容器,而不是一个分隔符组件 */package com.swing;import java.awt.*;import javax.swing.*;public class QQChatWin extends JFrame {//DefinitionJSplitPane jsplit1, jsplit2;JTextArea jta1;JLabel jlb;JList jlist;JScrollPane jsp1,jsp2;JPanel jp1,jp3;JComboBox jcb;JTextField jtf;JButton jb;public static void main(String[] args) {QQChatWin qc = new QQChatWin();}public QQChatWin(){//Creationjta1 = new JTextArea();jlb = new JLabel(new ImageIcon("images/beauty.jpg"));//初始化右侧JList内容-->好友列表String []friends = {"Hanson","Mark","Leo","Joshua","Blade","Howland","Baker","Simon"};jlist = new JList(friends);jlist.setVisibleRowCount(4);//设置滚动条jsp1 = new JScrollPane(jta1);jsp2 = new JScrollPane(jlist);String []chatter = {"本拉登","小布什","奥巴马"};jcb = new JComboBox(chatter);jtf = new JTextField(12);jb = new JButton("发送");jp1 = new JPanel();//jp2 = new JPanel();jp3 = new JPanel();//先创建分割窗口,明确分割方式,但先不设置组件jsplit1 = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT);jsplit2 = new JSplitPane(JSplitPane.VERTICAL_SPLIT);//设置分割窗口可选显示/隐藏jsplit1.setOneTouchExpandable(true);jsplit2.setOneTouchExpandable(true); //Layoutthis.setLayout(new BorderLayout());//左下窗口布局jp3.add(jcb);jp3.add(jtf);jp3.add(jb);//左侧窗口布局,因JPanel默认是流式布局,所以要指定一下布局方式jp1.setLayout(new BorderLayout());jp1.add(jsp1,BorderLayout.CENTER);jp1.add(jp3,BorderLayout.SOUTH);//右侧窗口上//jp2.add(jlb,BorderLayout.NORTH);//jp2.add(jsp2,BorderLayout.SOUTH);//这部分一定要写在组件都初始化完成之后jsplit1.setLeftComponent(jp1);jsplit2.setTopComponent(jlb);jsplit2.setBottomComponent(jsp2);jsplit1.setRightComponent(jsplit2);//因为主容器就是一个jsplit1,而jsplit2只是jsplit1的右半部分,故只需要将jsplit1加入到JFrame即可this.add(jsplit1);//set configurationthis.setTitle("QQ聊天");this.setSize(500,350);this.setLocation(200,100);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setResizable(false);//设置标题栏的小图标,小企鹅this.setIconImage((new ImageIcon("images/qq.GIF")).getImage());//Displaythis.setVisible(true);//这句话应该写在setVisible后面才生效,笔者在网上查的资料,也实验了一下jsplit1.setDividerLocation(0.7);}}
0 0
- Java中Swing编程(单JFrame多JSplitPane)
- Java中Swing编程JFrame窗口的使用
- java Swing中JFrame常用方法
- Java Swing中JFrame设置自定义图标
- Java---Swing(1)---------------------JFrame
- java Swing组件之JSplitPane使用
- swing中一个Jframe调用另一个Jframe
- java中jframe 和jpanel的区别 (java的swing界面)
- java swing中jpanel跟jframe的区别
- java.swing中 真正认识 JFrame 和 getContentPane() 方法
- Java Swing ,如何在Jframe中加入图片
- JAVA学习中Swing概述中的JFrame学习
- JAVA中Swing编程
- Java中swing编程
- Swing 中拆分窗格基本使用JSplitPane
- Swing之JSplitPane
- 全屏SWING中JFrame窗口的例子
- JAVA学习笔记swing JFrame窗口学习
- 搜索引擎之solr小结
- ajax使用XMLHTTPRequest
- Android的NDK开发(1)————Android JNI简介与调用流程
- iOS 支付宝支付
- unity3d,利用plane面片显示摄像机看到的物体,类似于投影仪的效果。
- Java中Swing编程(单JFrame多JSplitPane)
- C# MessageBox
- 详解.NET内存管理机制与垃圾回收
- C#转C++的一点分享
- AD转换
- Ural 1991 The battle near the swamp
- Balanced Binary Tree(Java代码没过,什么原因???)
- Qt之QDesktopServices 和 QStandardPaths
- UVA 297 Quadtrees