当前位置: 首页 > 教程 > Java Swing >

Java JComponent

精华
小牛编辑
129浏览
2023-03-14

1 Java JComponent的介绍

JComponent类是除顶层容器之外的所有Swing组件的基类。名称以“ J”开头的Swing组件是JComponent类的后代。例如,JButton,JScrollPane,JPanel,JTable等。但是,JFrame和JDialog不继承JComponent类,因为它们是顶级容器的子级。

JComponent类扩展了Container类,而Container类本身又扩展了Component。Container类支持将组件添加到容器中。

2 Java JComponent的字段

字段 描述
accessibleContext 与此JComponent关联的AccessibleContext。
listenerList 此组件的事件侦听器的列表。
TOOL_TIP_TEXT_KEY 当光标位于组件上方时显示的注释,也称为“值提示”,“悬浮式帮助”或“悬浮式标签”
ui 此组件的外观委托。
UNDEFINED_CONDITION 它是某些API使用的常量,表示未定义任何条件。
WHEN_ANCESTOR_OF_FOCUSED_COMPONENT 它是用于registerKeyboardAction的常数,这意味着当接收组件是关注组件的祖先或本身就是关注组件时,应调用命令。
WHEN_FOCUSED 它是用于registerKeyboardAction的常数,这意味着当组件具有焦点时应调用命令。
WHEN_IN_FOCUSED_WINDOW 用于registerKeyboardAction的常量,这意味着当接收组件位于具有焦点的窗口或本身就是焦点组件的窗口中时,应调用命令。

3 Java JComponent的构造方法

构造方法 描述
JComponent() 默认的JComponent构造函数。

4 Java JComponent的方法

方法 描述
void setActionMap(ActionMap am) 将ActionMap设置为am。
void setBackground(Color bg) 设置此组件的背景色。
void setFont(Font font) 为此组件设置字体。
void setMaximumSize(Dimension maximumSize) 将此组件的最大大小设置为恒定值。
void setMinimumSize(Dimension minimumSize) 将此组件的最小大小设置为恒定值。
protected void setUI(ComponentUI newUI) 为此组件设置外观委托。
void setVisible(boolean aFlag) 使组件可见或不可见。
void setForeground(Color fg) 设置此组件的前景色。
String getToolTipText(MouseEvent event) 返回用作事件工具提示的字符串。
Container getTopLevelAncestor() 返回此组件的顶级祖先(包含Window或Applet),如果未将此组件添加到任何容器,则返回null。
TransferHandler getTransferHandler() 获取transferHandler属性。

5 Java JComponent的案例

package cn.xnip;

/**
 * 小牛知识库网: https://www.xnip.cn
 */

import java.awt.Color;
import java.awt.Graphics;  
import javax.swing.JComponent;  
import javax.swing.JFrame;  
class MyJComponent extends JComponent {
      public void paint(Graphics g) {  
        g.setColor(Color.green);  
        g.fillRect(30, 30, 100, 100);  
      }  
}  
public class JComponentExample {  
      public static void main(String[] arguments) {  
        MyJComponent com = new MyJComponent();  
        // create a basic JFrame  
        JFrame.setDefaultLookAndFeelDecorated(true);  
        JFrame frame = new JFrame("JComponent案例-小牛知识库网");
        frame.setSize(300,200);  
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
        // add the JComponent to main frame  
        frame.add(com);  
        frame.setVisible(true);  
      }  
}

输出结果为: