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);
}
}
输出结果为: