请问大家能让JScrollPane透明和让jframe窗口总在最前吗? 如题,困扰好久,谢谢帮个忙! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 此回复为自动发出,仅用于显示而已,并无任何其他特殊作用楼主【pingpingdong】截止到2008-07-10 18:26:41的历史汇总数据(不包括此帖):发帖的总数量:46 发帖的总分数:1030 每贴平均分数:22 回帖的总数量:29 得分贴总数量:0 回帖的得分率:0% 结贴的总数量:29 结贴的总分数:680 无满意结贴数:7 无满意结贴分:170 未结的帖子数:17 未结的总分数:350 结贴的百分比:63.04 % 结分的百分比:66.02 % 无满意结贴率:24.14 % 无满意结分率:25.00 % 楼主加油 另外,再问一下大家,能有什么办法注册热键吗,类似于qq的ctrl+alt+a截屏似的. //最前端jframe.setAlwaysOnTop(true);透明的东东自己去找,网上有第三方包的 1.让JScrollPane透明,就要让他逐层透明,首先自己透明,之后它的ViewPort透明,之后ViewPort上的View透明,比较麻烦,我只能想到这样做一个例子:import java.awt.BorderLayout;import java.awt.Color;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTree;public class SimpleTest { /** * @param args */ public static void main(String[] args) { JFrame frame = new JFrame(); JScrollPane sPane = new JScrollPane(); JTree tree = new JTree(); sPane.setViewportView(tree); tree.setOpaque(false); JPanel panel = new JPanel(); panel.setLayout(new BorderLayout()); panel.setBackground(Color.BLUE); panel.add(sPane, BorderLayout.NORTH); JLabel label = new JLabel("Label"); sPane.setOpaque(false); label.setOpaque(false); panel.add(label, BorderLayout.SOUTH); frame.getContentPane().setLayout(new BorderLayout()); frame.getContentPane().add(panel, BorderLayout.CENTER); frame.setVisible(true); frame.setSize(500, 500); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setAlwaysOnTop(true); sPane.getViewport().setOpaque(false); }}2.这个简单,设置个属性就行:frame.setAlwaysOnTop(true);上面代码中也写了 先谢谢zwgs1985和craky了!没看懂zwgs1985写的代码什么意思,透明的现在要不要无所谓,请问怎么实现热键啊!jdk中有现成的类或者方法吗? 如果是控件的热键,就直接添加KeyListener,如果是全局的热键,如下 /** * 为RootPaneContainer组件添加键盘事件 * @param rpc RootPaneContainer组件 * @param action 需要执行的动作 * @param keyName 键的名称 * @param keyCode 键的数字代码 * @param modifiers 任意修饰符的按位或组合 */ public static void registerKeyEvent(RootPaneContainer rpc, Action action, String keyName, int keyCode, int modifiers) { JRootPane rp = rpc.getRootPane(); InputMap inputMap = rp.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW); inputMap.put(KeyStroke.getKeyStroke(keyCode, modifiers), keyName); rp.getActionMap().put(keyName, action); }用法 Action action = new AbstractAction() { private static final long serialVersionUID = 3322001448168076177L; public void actionPerformed(ActionEvent e) { System.out.println("Do something..."); } }; registerKeyEvent(jframe, action, "随便什么都行,只要不重复", KeyEvent.VK_S, KeyEvent.CTRL_MASK);以上代码实现是的Ctrl + S打印Do something...,如果不要组合键,最后一个参数置0 请问,你这段代码,切换程序时能使用吗,具体意思计划比如我现在的当前程序是outlook,我使用Ctrl + S能够打印吗?谢谢你了! 不能,要实现你所述的功能,必须利用JNI调用C/C++写好的库 哦,当java程序获得焦点的时候,监听按键我是知道的,就是不知道失去焦点时怎么使用热键获得系统焦点,我去研究一下JNI,谢谢你了craky!不知道难不难,呵呵! 关于线程问题 新人,请教一个java小问题 jxl如何写入excle自定义格式 等待窗口在屏幕上出现时,在下边任务栏不显示相应窗口条目,有办法吗? 关于Integer.parseInt的问题 数据库事务问题 thinking in java 和 JAVA 2核心技术 初学者到底应该选择哪本好!!!!!!! 一个JDBC例子,有问题,不知道为什么,请大家帮帮忙 在swing中怎么重载tooltip java下载运行不了 关于TCP的一个疑问 (请教高手)在框架上工作
楼主【pingpingdong】截止到2008-07-10 18:26:41的历史汇总数据(不包括此帖):
发帖的总数量:46 发帖的总分数:1030 每贴平均分数:22
回帖的总数量:29 得分贴总数量:0 回帖的得分率:0%
结贴的总数量:29 结贴的总分数:680
无满意结贴数:7 无满意结贴分:170
未结的帖子数:17 未结的总分数:350
结贴的百分比:63.04 % 结分的百分比:66.02 %
无满意结贴率:24.14 % 无满意结分率:25.00 %
楼主加油
//最前端
jframe.setAlwaysOnTop(true);
透明的东东自己去找,网上有第三方包的
import java.awt.Color;import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTree;public class SimpleTest { /**
* @param args
*/
public static void main(String[] args) {
JFrame frame = new JFrame();
JScrollPane sPane = new JScrollPane();
JTree tree = new JTree();
sPane.setViewportView(tree);
tree.setOpaque(false);
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
panel.setBackground(Color.BLUE);
panel.add(sPane, BorderLayout.NORTH);
JLabel label = new JLabel("Label");
sPane.setOpaque(false);
label.setOpaque(false);
panel.add(label, BorderLayout.SOUTH);
frame.getContentPane().setLayout(new BorderLayout());
frame.getContentPane().add(panel, BorderLayout.CENTER);
frame.setVisible(true);
frame.setSize(500, 500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setAlwaysOnTop(true);
sPane.getViewport().setOpaque(false);
}
}
2.这个简单,设置个属性就行:frame.setAlwaysOnTop(true);上面代码中也写了
没看懂zwgs1985写的代码什么意思,透明的现在要不要无所谓,请问怎么实现热键啊!jdk中有现成的类或者方法吗?
* 为RootPaneContainer组件添加键盘事件
* @param rpc RootPaneContainer组件
* @param action 需要执行的动作
* @param keyName 键的名称
* @param keyCode 键的数字代码
* @param modifiers 任意修饰符的按位或组合
*/
public static void registerKeyEvent(RootPaneContainer rpc, Action action, String keyName, int keyCode, int modifiers)
{
JRootPane rp = rpc.getRootPane();
InputMap inputMap = rp.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
inputMap.put(KeyStroke.getKeyStroke(keyCode, modifiers), keyName);
rp.getActionMap().put(keyName, action);
}
用法
Action action = new AbstractAction()
{
private static final long serialVersionUID = 3322001448168076177L; public void actionPerformed(ActionEvent e)
{
System.out.println("Do something...");
}
}; registerKeyEvent(jframe, action, "随便什么都行,只要不重复", KeyEvent.VK_S, KeyEvent.CTRL_MASK);
以上代码实现是的Ctrl + S打印Do something...,如果不要组合键,最后一个参数置0
不能,要实现你所述的功能,必须利用JNI调用C/C++写好的库
!不知道难不难,呵呵!