• Swing编程中为什么对Panel设置了位置后,它的lable位置也跟这变了呢?


    总结:

    package com.da;
    //这里我不明白,我对每一个Panle里的按钮设置了位置BorderLayout.SOUTH.可是为什么Lable的位置和它一样同步设置了呢?
    //做一个界面
    //0 嵌入式
    //0 通信
    // 0 增值业务
    //0 传统应用软件
    ///JRadionButton
    //JPanel,JFrame,J
    
    import javax.swing.JRadioButton;
    import java.awt.Container;
    
    import javax.swing.ImageIcon;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JLabel;
    import java.awt.GridLayout;
    import java.awt.Color;
    import java.awt.FlowLayout;
    import java.awt.BorderLayout;
    
    public class yu {
    	public static void main(String[] args) {
    		JFrame j = new JFrame();// 定义一个框架
    
    		Container c = j.getContentPane();// 容器类
    		// 现在需要实现把按及信息排列
    		c.setLayout(new GridLayout(4, 1));// 网格布局。
    
    		JPanel jp1 = new JPanel(new BorderLayout());// 这里在面板类中我并没设置它的布局方式,因为面板不就是一个大容器,只有一个吗?
    		JPanel jp2 = new JPanel(new BorderLayout());// 面板可以有多个吗?
    		JPanel jp3 = new JPanel(new BorderLayout());
    		JPanel jp4 = new JPanel(new BorderLayout());
    
    		// 第二步做JRadioButton。单选按钮组。并设定其位置
    		JRadioButton jr1, jr2, jr3, jr4;
    		jr1 = new JRadioButton();
    		jr2 = new JRadioButton();
    		jr3 = new JRadioButton();
    		jr4 = new JRadioButton();
    
    		// 第一步做Label显示
    		JLabel jl1, jl2, jl3, jl4;
    		jl1 = new JLabel("通信");
    		jl2 = new JLabel("嵌入式");
    		jl3 = new JLabel("增值业务");
    		jl4 = new JLabel("传统应用软件");
    
    		// 创建Panel类肯定不止一个,否则那跟所有label放入同一个容器没区别
    		// label.setFont(new Font("华文行楷",Font.BOLD,24));
    		ImageIcon bg = new ImageIcon(
    				"C:/Users/Administrator/Desktop/WuZi/image/21.jpg");
    		// 将按钮添加到Panel类
    		jp1.add(jr1, BorderLayout.SOUTH);
    		jp2.add(jr2, BorderLayout.SOUTH);
    		jp3.add(jr3, BorderLayout.SOUTH);
    		jp4.add(jr4, BorderLayout.SOUTH);
    		// 第四步添加Label组件显示提示信息
    		// 布局管理器除了给按钮定位,还可以给提示标签信息定位吗?
    		jp1.add(jl1); // 注意我们要想在Frame里改变组件的位置,不仅要创建不同的Panel类
    		jp2.add(jl2); // 还要记得每一个按钮组件都需要设定位置,对于Lable的里提示信息位置可以
    		jp3.add(jl3);
    		jp4.add(jl4);
    
    		j.add(jp1);// 将面板添加到窗体
    		j.add(jp2);// 将面板添加到窗体
    		j.add(jp3);// 将面板添加到窗体
    		j.add(jp4);// 将面板添加到窗体
    
    		j.setLocationRelativeTo(null);
    		// j.setLayout(new FlowLayout());我快疯掉了,就是这一行,让我查半天,这里意思是顺序布局,当然无法换行显示
    		j.setSize(333, 333);// FlowLayout()意思是从左到右,我说怎么不能纵向排列,其实网格布局,BordLayout.WSET已经指定了位置,左对齐
    		j.setBackground(Color.pink);
    		j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    		j.setVisible(true);
    
    	}
    
    	private static void setBounds(int i, int j, int k, int l) {
    		// TODO Auto-generated method stub
    
    	}
    
    }
    

      

  • 相关阅读:
    【.NET】Web Service
    【Coding】C# 操作文件(一)
    【设计模式】设计模式概述
    TCP/IP协议
    【.NET】SOAP Web Service
    简单读写xml
    利用winform来承载WCF服务
    在panel里面显示一个窗体
    asp.net 角色管理 MSDN帮助路径
    asp.net ajax MSDN帮助
  • 原文地址:https://www.cnblogs.com/langlove/p/3427521.html
Copyright © 2020-2023  润新知