java视窗_java-预览窗口(如Windows 7任务栏显示已打开的...

一个极其简单的实现.

import java.awt.*;

import java.awt.image.*;

import java.awt.event.*;

import javax.swing.*;

class ShowPreviews {

class ToolTipListener extends MouseAdapter {

JWindow toolTip;

JLabel label;

Component preview;

ToolTipListener(Component preview) {

this.preview = preview;

}

@Override

public void mouseEntered(MouseEvent me) {

if (toolTip==null) {

toolTip = new JWindow();

label = new JLabel();

toolTip.add(label);

}

label.setIcon( new ImageIcon(

getScaledImageOfComponent(preview, .6) ) );

toolTip.pack();

Component c = (Component)me.getSource();

int x = c.getLocationOnScreen().x+(c.getWidth()/2);

int y = c.getLocationOnScreen().y+c.getHeight();

toolTip.setLocation(x,y);

toolTip.setVisible(true);

}

@Override

public void mouseExited(MouseEvent me) {

toolTip.setVisible(false);

toolTip.dispose();

}

public Image getScaledImageOfComponent(

Component component, double scale) {

BufferedImage bi = new BufferedImage(

(int)(component.getWidth()*scale),

(int)(component.getHeight()*scale),

BufferedImage.TYPE_INT_RGB);

Graphics2D g = bi.createGraphics();

g.scale(scale, scale);

component.paint(g);

g.dispose();

return bi;

}

}

ShowPreviews() {

JPanel gui = new JPanel(new BorderLayout(2,2));

final CardLayout cards = new CardLayout();

final JPanel cardPanel = new JPanel(cards);

JPanel treePanel = new JPanel();

JTree tree = new JTree();

tree.setVisibleRowCount(5);

tree.expandRow(2);

treePanel.add(new JScrollPane(tree));

cardPanel.add(treePanel, "tree");

JPanel labelPanel = new JPanel(new GridLayout(0,1,2,2));

for (int ii=1; ii<7; ii++) {

labelPanel.add(new JLabel("Label " + ii));

}

cardPanel.add(new JScrollPane(labelPanel), "label");

JToolBar uiSelectors = new JToolBar();

// we should use a ButtonGroup for the cards,

// but plain buttons look better on hover.

JButton treeButton = new JButton("Tree");

treeButton.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent ae) {

cards.show(cardPanel, "tree");

}

});

uiSelectors.add(treeButton);

treeButton.addMouseListener( new ToolTipListener(treePanel));

JButton labelButton = new JButton("Label");

labelButton.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent ae) {

cards.show(cardPanel, "label");

}

});

uiSelectors.add(labelButton);

labelButton.addMouseListener( new ToolTipListener(labelPanel));

gui.add(uiSelectors, BorderLayout.NORTH);

gui.add(cardPanel, BorderLayout.CENTER);

JOptionPane.showMessageDialog(null, gui);

}

public static void main(String[] args) {

// start the GUI on the EDT

SwingUtilities.invokeLater(new Runnable() {

@Override

public void run() {

new ShowPreviews();

}

});

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434139.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux(ubuntu)下分区和格式化sd卡

我的手机sd卡需要分成两个分区&#xff0c;在windowxp下面死活搞不成。主要的问题是&#xff0c;window只认识sd卡的第一个分区。有人用修改驱动程序&#xff0c;让windows把sd卡认成日立的microdisk&#xff0c;分区和格式化也可以完成。但是在我的笔记本上&#xff0c;sd读卡…

@value 静态变量_Java中的变量——通过示例学习Java编程(4)

作者&#xff1a;CHAITANYA SINGH来源&#xff1a;通过示例学习Java编程&#xff08;4&#xff09;&#xff1a;Java中的变量-方家话题​www.koofun.com变量是用来存放可以更改的值的容器。例如&#xff0c;当我写int i 10; 这里变量名是i&#xff0c;它与值10相关联&#xff…

nmf算法 python_NMF算法简介及python实现

[ pca算法用于原始数据维数较高时对数据进行降维 关于pca算法的学习&#xff0c;有一篇分析特别详细的论文http://www.cs.otago.ac.nz/cosc453/student_tutorials/principal_componen基本原理NMF&#xff0c;非负矩阵分解&#xff0c;它的目标很明确&#xff0c;就是将大矩阵分…

linux 修改消息队列大小

环境&#xff1a;red hat5 linux消息队列的配置文件为&#xff1a; /etc/sysctl.conf ,里面&#xff1a; msgmax:  一条最大消息的字节数 msgmnb&#xff1a; 一个消息队列总共最大字节数 而我的系统这2个值都默认是65536&#xff0c;假如发一条65536长度的消息&#xff0c;…

龙芯购买MIPS指令集的授权

以前指责龙芯购买MIPS授权的那篇文章让人啼笑皆非&#xff0c;只能用无知来概况我在IT从业多年&#xff0c;非常赞同龙芯购买MIPS指令集的授权&#xff01;分几个方面来阐述&#xff1a;&#xff08;1&#xff09;什么是指令集&#xff1f;指令集好像英文的26个字母&#xff0c…

python网络爬虫_Python爬虫实战之网络小说

今天和大家分享的是python爬虫实战&#xff0c;由于本人最近迷上了看网络小说&#xff0c;学生党又穷&#xff0c;只能看看网络dao版小说&#xff0c;现在这类dao版小说网站可以说非常的多&#xff0c;但是所有的网站进去都可以看见一大把的广告信息&#xff0c;非常影响我们的…

java反射机制详解_JAVA反射机制详解_JSP/Java编程_互联网开发技术网_传播最新的编程技术_php361.com...

今天&#xff0c;下午在和朋友聊天的时候&#xff0c;聊起了反射这个话题。我们就从下面这个段简单的代码开始吧。这个代码输出什么&#xff0c;想必大部分的读者跟我一样&#xff0c;会很快地知道答案&#xff1a;0 1 2 3 4 5 6 7 8 9。事实也是如此&#xff1a;朋友这个时候就…

实时修改和读取webconfig

ConfigurationManager.AppSettings.Set("MailUser","3" );ConfigurationManager.AppSettings.Set("MailPassword","2");ConfigurationManager.AppSettings.Set("MailEnable","1" ); 只能临时保存实时修改webconfi…

activity 点击后传递数据给fragment_Fragment 新特性 : Fragment Result API 使用以及源码分析

原标题: Android Fragments: Fragment Result原文地址: https://proandroiddev.com/android-fragments-fragment-result......原文作者: Husayn Hakeem今年 Google 推出了 Fragment Result API 和 Activity Results API&#xff0c;用来取代之前的 Activity 和 Fragment 之间通…

linux动态库与静态库混合连接

在应用程序需要连接外部库的情况下&#xff0c;linux默认对库的连接是使用动态库&#xff0c;在找不到动态库的情况下再选择静态库。使用方式为&#xff1a; gcc test.cpp -L. -ltestlib 如果当前目录有两个库libtestlib.so libtestlib.a 则肯定是连接libtestlib.so。如果要指定…

java运算函数_Java中的数学计算函数

Math类&#xff1a;java.lang.Math类中包含基本的数字操作&#xff0c;如指数、对数、平方根和三角函数。java.math是一个包&#xff0c;提供用于执行任意精度整数(BigInteger)算法和任意精度小数(BigDecimal)算法的类。java.lang.Math类中包含E和PI两个静态常量&#xff0c;以…

从无头单链表中删除节点

#include<iostream> using namespace std;struct Node{int data;Node* next; };void deleteNode(Node* p) {p->datap->next->data; //将p后的节点的数值赋给p的data域p->nextp->next->next; //将p后的节点删除&#xff0c;即完成了删除节点p的效果…

android卡片层叠效果_ReactNative之Android绝对布局position:#x27;absolute#x27;问题

工作中会遇到各种各样的问题&#xff0c;ReactNative开发也是填坑不止。比如最近在开发需求中&#xff0c;就遇到一个问题。在一个卡片类型的右上角添加一个删除按钮。使用了绝对布局position:absolute属性&#xff0c;在Android上却无法正常显示&#xff0c;很是烦恼。有一个相…

java监听机制_详解java的事件监听机制和观察者设计模式

首先说说监听器&#xff1a;监听器就是一个实现特定接口的普通java程序&#xff0c;这个程序专门用于监听另一个java对象的方法调用或属性改变&#xff0c;当被监听对象发生上述事件后&#xff0c;监听器某个方法将立即被执 行。java的事件监听机制可概括为3点&#xff1a;1,ja…

敏捷开发的6个实战经验

在大型企业中经常是各种软件开发模式混用&#xff0c;一些采用敏捷开发&#xff0c;一些则是采用传统的瀑布式或RUP&#xff08;统一软件开发过程&#xff09;。敏捷开发&#xff0c;相对传统软件开发模式&#xff0c;它主要是针对快速变化的需求&#xff0c;不断优化管理流程&…

C++ Editbox换行问题

在EditBox中"/r/n" 换行有时是不行的。 使用&#xff1a;strFilePath.Format("File Name: %s%c%c", strFileName,0x0D,0x0A); //strFilePath.Format("File Name: %s/r/n", strFileName);转载于:https://www.cnblogs.com/mygod/archive/2012/11/1…

java 正则匹配括号是否成对_十分钟学会正则表达式

正则表达式用处挺广的&#xff0c;主要用于处理字符串。正则引擎想要在计算机语言中使用正则表达式&#xff0c;那么这门计算机语言必须要利用正则引擎去实现相应的正则库。主要的正则引擎分为以下两类&#xff1a;DFA 确定性的状态机。不使用”回溯”&#xff0c;效率高&#…

shell 脚本比较字符串相等_比较带空格的字符串相等的Shell脚本 如何比较两个.....

****************************比较带空格的字符串相等的Shell脚本***************************如果要比较的字符串中间有空格&#xff0c;可以用下面的程序(摘自《Unix Shells by Example, 3rd Edition》)name"Joe Blow"if [[ $name "Joe Blow" ]]thenpri…

Linux 下编译并安装配置 Qt

本文介绍的是Linux 下编译并安装配置 Qt&#xff0c;最近准备做 Nokia 的 Symbian,Maemo 下触摸屏开发。考虑到程序的跨平台可移植性&#xff0c;最终选择使用 Qt 开发。相对来说&#xff0c;国内关于 Qt 相关文档并不算很多。作者将 Linux 下编译并安装配置 Qt 全过程总结了…

itext jsp页面打印

最近项目中需要一个打印功能&#xff0c;需求很简单&#xff0c;只要打印出单据就可以了&#xff0c;画出一个表格&#xff0c;一些信息需要从数据库中提取 找到了免费的itext&#xff0c;可以实现我的简单的功能了 代码&#xff1a;&#xff08;打印方法&#xff09; public S…