`
switchlau
  • 浏览: 52885 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

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

    博客分类:
  • 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]

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics