可以搭载任意控件的grouppanel控件
public class ComponentTitledBorder implements Border, MouseListener, SwingConstants {
int offset = 5;
Component comp;
JComponent container;
Rectangle rect;
Border border;
public ComponentTitledBorder(Component comp, JComponent container, Border border) {
this.comp = comp;
this.container = container;
this.border = border;
container.addMouseListener(this);
}
public boolean isBorderOpaque() {
return true;
}
public void paintBorder(Component c, Graphics g, int x, int y, int width, int height) {
Insets borderInsets = border.getBorderInsets(c);
Insets insets = getBorderInsets(c);
int temp = (insets.top - borderInsets.top) / 2;
border.paintBorder(c, g, x, y + temp, width, height - temp);
Dimension size = comp.getPreferredSize();
rect = new Rectangle(offset, 0, size.width, size.height);
SwingUtilities.paintComponent(g, comp, (Container) c, rect);
}
public Insets getBorderInsets(Component c) {
Dimension size = comp.getPreferredSize();
Insets insets = border.getBorderInsets(c);
insets.top = Math.max(insets.top, size.height);
return insets;
}
private void dispatchEvent(MouseEvent me) {
if (rect != null && rect.contains(me.getX(), me.getY())) {
Point pt = me.getPoint();
pt.translate(-offset, 0);
comp.setBounds(rect);
comp.dispatchEvent(new MouseEvent(comp, me.getID(), me.getWhen(), me.getModifiers(),
pt.x, pt.y, me.getClickCount(), me.isPopupTrigger(), me.getButton()));
if (!comp.isValid())
container.repaint();
}
}
public void mouseClicked(MouseEvent me) {
dispatchEvent(me);
}
public void mouseEntered(MouseEvent me) {
dispatchEvent(me);
}
public void mouseExited(MouseEvent me) {
dispatchEvent(me);
}
public void mousePressed(MouseEvent me) {
dispatchEvent(me);
}
public void mouseReleased(MouseEvent me) {
dispatchEvent(me);
}
}
- 大小: 13.6 KB
分享到:
相关推荐
俄罗斯方块游戏-Java-Swing实现.zip俄罗斯方块游戏-Java-Swing实现.zip 俄罗斯方块游戏-Java-Swing实现.zip俄罗斯方块游戏-Java-Swing实现.zip 俄罗斯方块游戏-Java-Swing实现.zip俄罗斯方块游戏-Java-Swing实现.zip...
Fest-Swing提供了丰富的断言方法来检查组件的状态,比如`assertText()`用于验证文本框的内容,`assertEnabled()`和`assertDisabled()`用来确认组件是否可操作。此外,还有用于检查组件可见性的方法,以及与事件相关...
在标题提到的"swt源码和jar包dj-native-swing-swt.jar"中,"dj-native-swing-swt.jar"是一个特殊的库,它结合了SWT和JNativeSwing,允许在Java Swing应用中嵌入SWT组件。这使得开发者可以在同一应用程序中同时使用...
swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3swing-layout-1.0.3...
基于java的开发源码-swing-explorer(Swing开发辅助工具).zip 基于java的开发源码-swing-explorer(Swing开发辅助工具).zip 基于java的开发源码-swing-explorer(Swing开发辅助工具).zip 基于java的开发源码-swing-...
Java课程设计-学生成绩管理系统-Swing+MySQL.zipJava课程设计-学生成绩管理系统-Swing+MySQL.zipJava课程设计-学生成绩管理系统-Swing+MySQL.zipJava课程设计-学生成绩管理系统-Swing+MySQL.zipJava课程设计-学生...
基于springboot oracle java-swing 的 职工考勤管理信息系统 基于springboot oracle java-swing 的 职工考勤管理信息系统 基于springboot oracle java-swing 的 职工考勤管理信息系统 基于springboot oracle java-...
<project name="Ant-Swing-Demo" default="show-dialog"> <taskdef name="swingdialog" classname="org.apache.tools.ant.taskdefs.SwingDialogTask" classpath="path/to/ant-swing.jar"/> <target name="show-...
《深入理解Aspect-Swing-Worker-1.1.jar在Java编程中的应用》 在Java开发领域,库文件的使用是提升代码效率、实现特定功能的关键。今天我们将深度探讨"aspect-swing-worker-1.1.jar.zip"这个压缩包,它包含了一个名...
<groupId>org.geotools <artifactId>gt-swing ${geotools.version} 依赖的jar包下载
truelicense-swing-1.32.jar\\license授权机制所需jar包
material-ui-swing, 面向 Java Swing的现代材料设计 UI material-ui-swing面向 Java Swing的现代材料设计 UI外观JComponents具有材质设计外观和感觉。 大多数组件都是响应性的,具有悬停效果,并单击"效果( 没有波纹...
总的来说,FEST-Swing作为一款强大的GUI测试工具,能够有效地帮助开发者保证Swing应用的稳定性和功能正确性,是Java GUI测试领域不可或缺的利器。通过深入理解和熟练运用,我们可以提升测试的质量,减少手动测试的...
Lucene索引查看工具 Luke。Luke 是查询LUCENE索引文件的工具, 而且用 Luke 的Search可以做查询。Luke is a handy development and diagnostic to Lucene.
java Miaglayout布局管理器所用到的的包 miglayout-3.7-swing.jar
FEST-Swing是一个用于Swing GUI应用程序功能测试的java开源类库。支持模拟用户交互( 鼠标操作和键盘输入)。支持JDK中的所有Swing组件。提供简洁、强大的API来创建和维护GUI功能测试。
这个"Java-Swing-exercises.rar"压缩包显然包含了作者在大学期间编写的Swing控件练习,旨在帮助学习者熟悉并掌握Swing的各种控件。下面,我们将深入探讨Swing中的主要控件及其用途。 1. **JFrame**: JFrame是Swing...
标签:ant-swing-1.7.1.jar,ant,swing,1.7.1,jar包下载,依赖包
标签:ant-swing-1.9.4.jar,ant,swing,1.9.4,jar包下载,依赖包
7. **Swing构件的可定制性**:Swing组件高度可定制,可以通过重绘(override paintComponent())或设置属性来改变组件的外观和行为。 8. **对话框(Dialogs)**:Swing提供了JOptionPane,JOptionPane可以创建各种类型...