我正在开发一个显示图像的应用程序,并从数据库中播放声音.我正在尝试决定是否使用单独的JFrame从GUI向数据库添加图像.
我只是想知道使用多个JFrame窗口是否是一个好习惯?
什么是JFrame
关闭的正确方法,就像用户点击X
关闭按钮或按下Alt+ F4(在Windows上)一样?
我通过以下方式设置我的默认关闭操作:
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Run Code Online (Sandbox Code Playgroud)
它完全符合我想要的上述控件.这个问题与此无关.
我真正想要做的是使GUI的行为方式与按下X
关闭按钮会使其表现相同.
假设我要扩展WindowAdaptor
然后添加我的适配器实例作为监听器addWindowListener()
.我想看到的调用相同的序列通过windowDeactivated()
,windowClosing()
以及windowClosed()
作为将与出现X
关闭按钮.可以这么说,撕毁窗户就像告诉它撕裂自己一样.
使用Java时,我发现在启动应用程序时很难将主窗口放在屏幕中央.
有什么方法可以做到吗?它不必垂直居中,水平对齐对我来说是更重要的目标.但垂直对齐也很受欢迎.
我有一个JFrame
在标题栏(左上角)显示Java图标.我想将该图标更改为我的自定义图标.我该怎么办?
好的,我阅读了Java文档,我无法弄清楚这两种方法之间的主要区别.有时我曾经使用过setSize()
,有时候setPreferredSize()
,有时一个人会做我想要的,有时候是另一个.
那么,两者之间的主要区别是什么?我应该使用哪一个JFrames
和JPanels
?
谢谢
我想在confirmExit()
单击JFrame标题栏的红色关闭按钮时调用方法.
我该如何捕获该事件?
如果用户选择不继续,我还想阻止窗口关闭.
我正在尝试KeyListener
为我实现一个JFrame
.在构造函数上,我正在使用此代码:
System.out.println("test");
addKeyListener(new KeyListener() {
public void keyPressed(KeyEvent e) { System.out.println( "tester"); }
public void keyReleased(KeyEvent e) { System.out.println("2test2"); }
public void keyTyped(KeyEvent e) { System.out.println("3test3"); }
});
Run Code Online (Sandbox Code Playgroud)
当我运行它时,test
消息出现在我的控制台中.但是,当我按下一个键时,我没有收到任何其他消息,就好像它KeyListener
甚至没有.
我当时认为这可能是因为焦点不在于JFrame
,所以他们KeyListener
没有收到任何事件.但是,我很确定它是.
有什么东西我错过了吗?
如何获得JPanel所在的JFrame?
我目前的解决方案是询问面板的父级(依此类推),直到找到一个Window:
Container parent = this; // this is a JPanel
do {
parent = parent.getParent();
} while (!(parent instanceof Window) && parent != null);
if (parent != null) {
// found a parent Window
}
Run Code Online (Sandbox Code Playgroud)
是否有更优雅的方式,标准库中的方法可能是?
我如何获得java.awt.Image
JFrame?
我想获得一个屏幕截图JFrame
(以后在我的应用程序中使用).目前,这是通过使用机器人拍摄指定所JFrame
涉及的坐标和尺寸的屏幕截图来完成的.
但是,我相信有一种更好的方法:默认情况下,Swing组件在将自己绘制到屏幕上之前将它们自身渲染为双缓冲区.
有没有办法从组件中获取这些图像?
我创建了一个GUI,其中我使用了JFrame.我该如何制作Modal?
java ×10
jframe ×10
swing ×10
icons ×1
image ×1
jpanel ×1
keylistener ×1
modal-dialog ×1
position ×1
screenshot ×1