如何访问java核心包中的包可访问成员

        本文介绍如何访问java核心包中的包可访问成员。包可访问性的成员和方法指的是在声明成员或方法时没有加public、protected和private等访问修饰词的成员和方法。包可访问性的成员可以被同一个包中的其他类所访问。本文以BorderLayout中的center变量为例,简单介绍如何访问java核心包中的包可访问成员。

      1、为了访问BorderLayout中的center变量,我们编写一个AwtHelper类,将其包声明为java.awt,即和BorderLayout所在的包同名。代码如下

package  java.awt;

import  javax.swing.JButton;
import  javax.swing.JFrame;

public   class  AwtHelper  {

    
public static Component getChild(BorderLayout layout,String key){
        Component result 
= null;
        
if(key == BorderLayout.NORTH)
            result 
= layout.north;
        
else if(key == BorderLayout.SOUTH)
            result 
= layout.south;
        
else if(key == BorderLayout.EAST)
            result 
= layout.east;
        
else if(key == BorderLayout.WEST)
            result 
= layout.west;
        
else if(key == BorderLayout.CENTER)
            result 
= layout.center;
        
return result;
    }

    
    
public static void main(String[] args) {
        Container container 
= createTestContainer();
        
if( container.getLayout() instanceof BorderLayout){
            BorderLayout layout 
= (BorderLayout)container.getLayout();
            Component center 
= AwtHelper.getChild(layout, BorderLayout.CENTER);
            System.out.println(
"Center Component = " + center);
        }

    }

    
    
public static Container createTestContainer(){
        JFrame frame 
= new JFrame();
        Container con 
= frame.getContentPane();
        con.setLayout(
new BorderLayout());
        con.add(
new JButton("Center"),BorderLayout.CENTER);
        
return con;
    }

}

   2、将AwtHelper.java 编译后,将该类加入启动类路径 运行命令 java -Xbootclasspath/p:. java.awt.AwtHelper

Center Component  =  javax.swing.JButton[, 0 , 0 , 0x0 ,invalid,alignmentX = 0.0 ,alignment
Y
= 0.5 ,border = javax.swing.plaf.BorderUIResource$CompoundBorderUIResource@1adc30,f
lags
= 296 ,maximumSize = ,minimumSize = ,preferredSize = ,defaultIcon = ,disabledIcon = ,dis
abledSelectedIcon
= ,margin = javax.swing.plaf.InsetsUIResource[top = 2 ,left = 14 ,bottom
= 2 ,right = 14 ],paintBorder = true ,paintFocus = true ,pressedIcon = ,rolloverEnabled = true ,
rolloverIcon
= ,rolloverSelectedIcon = ,selectedIcon = ,text = Center,defaultCapable = tru
e]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值