java之GUI学习

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/liangqibinde/article/details/83963335

1、JFrame是一个顶层容器类(可以添加其他swing组件的类)

创建一个简单的JFrame窗口:


 
 
  1. public class TestJFrame extends JFrame{
  2.     JButton jButton = null;
  3.      public static void main(String[] args) {
  4.         TestJFrame testJFrame = new TestJFrame();
  5.     }
  6.      public TestJFrame(){        
  7.         JButton jButton = new JButton( "按钮"); //创建按钮
  8.          this.setTitle( "第一个窗体"); //设置标题
  9.          this.setSize( 400, 200); //设置窗口大小
  10.          this.add(jButton); //添加按钮
  11.          this.setLocation( 300, 200); //设置相对于window界面的位置
  12.          this.setResizable( false); //禁止修改大小
  13.          this.setIconImage(( new ImageIcon( "images/my.jpg")).getImage()); //设置窗体图标
  14.          this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置关闭窗口保证JVM也退出,避免无谓的内存消耗
  15.          this.setVisible( true); //显示
  16.     }
  17. }

二、三大常用布局管理器介绍

1、流式布局管理器


 
 
  1. public class TestFlowLayout extends JFrame{
  2.     JButton jb1,jb2,jb3,jb4,jb5;
  3.      public static void main(String[] args) {
  4.         TestFlowLayout testFlowLayout = new TestFlowLayout();
  5.     }
  6.      public TestFlowLayout(){
  7.          //创建组件
  8.         jb1 = new JButton( "关羽");
  9.         jb2 = new JButton( "张飞");
  10.         jb3 = new JButton( "赵云");
  11.         jb4 = new JButton( "黄忠");
  12.         jb5 = new JButton( "魏延");
  13.         
  14.          //添加组件
  15.          this.add(jb1);
  16.          this.add(jb2);
  17.          this.add(jb3);
  18.          this.add(jb4);
  19.          this.add(jb5);
  20.         
  21.         
  22.          //设置布局管理器
  23.          this.setLayout( new FlowLayout(FlowLayout.LEFT));
  24.         
  25.          //设置窗体属性
  26.          this.setTitle( "边界布局案例");
  27.          this.setSize( 300, 200);
  28.          this.setLocation( 200, 200);
  29.          this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  30.         
  31.          //显示窗体
  32.          this.setVisible( true);
  33.         
  34.     }
  35. }

2、边界布局管理器


 
 
  1. public class TestBorderLayout extends JFrame{
  2.      //定义组件
  3.     JButton jbCenter,jbNorth,jbEast,jbSouth,jbWest;
  4.      public static void main(String[] args) {
  5.         TestBorderLayout testBorderLayout = new TestBorderLayout();
  6.     }
  7.      public TestBorderLayout(){
  8.          //创建组件
  9.         jbCenter = new JButton( "中部");
  10.         jbEast = new JButton( "东部");
  11.         jbSouth = new JButton( "南部");
  12.         jbWest = new JButton( "西部");
  13.         jbNorth = new JButton( "北部");
  14.         
  15.          //添加各个组件
  16.          this.add(jbCenter,BorderLayout.CENTER);
  17.          this.add(jbNorth,BorderLayout.NORTH);
  18.          this.add(jbEast,BorderLayout.EAST);
  19.          this.add(jbSouth,BorderLayout.SOUTH);
  20.          this.add(jbWest,BorderLayout.WEST);
  21.         
  22.          //设置窗体属性
  23.          this.setTitle( "边界布局案例");
  24.          this.setSize( 300, 200);
  25.          this.setLocation( 200, 200);
  26.          this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  27.         
  28.          //显示窗体
  29.          this.setVisible( true);
  30.         
  31.     }
  32. }

3、网格布局管理器


 
 
  1. public class TestGridLayout extends JFrame{
  2.      //定义组件
  3.      int size = 9;
  4.     JButton jbs[] = new JButton[size];
  5.      public static void main(String[] args) {
  6.         TestGridLayout testGridLayout = new TestGridLayout();
  7.     }
  8.      public TestGridLayout(){
  9.          //创建组件并添加组件
  10.          for( int i= 0;i<size;i++){
  11.             jbs[i] = new JButton(String.valueOf(i));
  12.              this.add(jbs[i]);
  13.         }
  14.         
  15.          //设置网格布局
  16.          this.setLayout( new GridLayout( 3, 3, 10, 10));
  17.         
  18.          //设置窗体属性
  19.          this.setTitle( "边界布局案例");
  20.          this.setSize( 300, 200);
  21.          this.setLocation( 200, 200);
  22.          this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  23.         
  24.          //显示窗体
  25.          this.setVisible( true);
  26.         
  27.     }
  28. }

4、其他还有卡片布局管理器和网格包布局管理器,但是不常用

三、其他一些工具

1、JPanel面板

//JPanel布局默认是FlowLayout,它也是一个容器类组件,可以使用面板作载体容纳其他的组件实现更多用化的布局

JPanel jp = new JPanel();

jp.setBackground(Color.RED);//设置面板背景色

或 :jp.setBackground(new Color(0,0,255));//同样也是设置背景色

2、JCheckBox多选框

JCheckBox jcb1 = new JCheckBox("足球");

3、JRadioButton单选框

//一定要把jrb1和jrb2放入到ButtonGroup中,要不然就实现不了单选的效果

//但要注意,虽然单选框放在ButtonGroup中,但是放到其他容器时仍然使用的是单选框而不是ButtonGroup

ButtonGroup bGroup = new ButtonGroup();

JRadioButton jrb1 = new JRadioButton("男");

JRadioButton jrb2 = new JRadioButton("女");

bGroup.add(jrb1);

bGroup.add(jrb2);

4、JComboBox下拉框

String [] jg = {"北京","上海","广州","玉林"};

JComboBox jcb1 = new JComboBox(jg);

5、JList列表及JScrollPane滚动条

String [] dd = {"桂林","九寨沟","故宫","长城"};

JList jList = new JList(dd);

jList.setVisibleRowCount(3);//设置你希望显示多少个选项

JScrollPane jScrollPane = new JScrollPane(jList);//注意:而后在之后放到其他容器中使用的时候要用的是jScrollPane

6、JSplitPane 拆分窗格及ImageIcont图片

String [] dd = {"桂林","九寨沟","故宫","长城"};

JList jList = new JList(dd);

JLable jl1 = new JLable(new ImageIcon("images/桂林.jpg"));

JSplitPane jsp = new JSplitPane (JSplitPane.HORIZONTAL_SPLIT,jList,jl1);

jsp.setOneTouchExpandable(true);//设置可以展开收起

7、JTextArea多行文本框

JTextArea jta = new JTextArea();

8、JTabbedPane选项卡窗格

JTabbedPane jtp = new JTabbedPane();

9、JLabel标签

JLable jl1 = new JLable("姓名",JLabel.CENTER);//设置文本居中

jl1.setFont(new Font("宋体",Font.PLAIN,16));//设置字体样式

jl1.setForeground(Color.BLUE);//设置字体颜色方法

JLabel jl2 = new JLabel("<html><a href='www.qq.com'>申请密码保护</a></html>");//超链接

jl2.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//鼠标到该标签变成一个小手

10、JButton按钮

JButton jb = new JButton(new ImageIcon("youdao.gif"));//按钮可以使用动态图片

11、JMenuBar菜单条组件(树干)、JMenu菜单组件(树枝)、JMenuItem菜单项组件(树叶)

Jmenu jmenu = new Jmenu("文件(F));

jmenu.setMnemonic("F");//设置助记符,这里填F可以使用alt+F建打开改菜单页

jmenu.addSeparator();//添加分割线

JMenuItem jMenuItem = new JMenuItem("保存");

 jMenuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_DOWN_MASK));//添加保存快捷方式

注意:全部做好菜单之后一定要记得将菜单条添加到窗体中

this.setJMenuBar(jmb);

12、JToolBar工具条组件

JButton jb = new JButton(new ImageIcon("new.jpg"));

jb.setToolTipText("新建");//设置鼠标停在按钮上时的提示消息

工具条添加到窗体直接使用add就可以了

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值