在这篇文章中,我们将带领您了解如何禁用的全貌,包括或隐藏JFrame上的关闭的相关情况。同时,我们还将为您介绍有关android–如何禁用电源按钮?、ios–如何禁用多按钮?、java-如何去掉JFr
在这篇文章中,我们将带领您了解如何禁用的全貌,包括或隐藏JFrame上的关闭的相关情况。同时,我们还将为您介绍有关android – 如何禁用电源按钮?、ios – 如何禁用多按钮?、java - 如何去掉 JFrame 上的最大化最小化和关闭按钮、java – 在单击按钮时打开时,新JFrame处于禁用状态的知识,以帮助您更好地理解这个主题。
本文目录一览:- 如何禁用(或隐藏)JFrame上的关闭(x)按钮?(jframe怎么关闭)
- android – 如何禁用电源按钮?
- ios – 如何禁用多按钮?
- java - 如何去掉 JFrame 上的最大化最小化和关闭按钮
- java – 在单击按钮时打开时,新JFrame处于禁用状态
如何禁用(或隐藏)JFrame上的关闭(x)按钮?(jframe怎么关闭)
我有一个窗口(源自JFrame),并且我想在某些不可中断的操作期间禁用关闭按钮。我知道我可以通过调用按钮使按钮不执行任何操作(或在WindowListener中调用处理程序)
setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
但我想在视觉上明确一点,单击它毫无意义。
答案1
小编典典如果我正确理解,则此错误报告表明当前无法实现。
android – 如何禁用电源按钮?
是否有可能覆盖Android电源按钮的功能?
我想’禁用’电源按钮.我的计划是覆盖此按钮的功能,什么也不做({};)
我的主要想法是禁用关闭屏幕.
我想当有人按下电源按钮时没有任何事情发生.
我怎样才能做到这一点 ?
解决方法:
Is it possible to override the functionality of the android power button ? I want to ‘disable’ the power button.
幸运的是,除非通过自定义固件,否则这是不可能的.
ios – 如何禁用多按钮?
单元1:按钮1->按下以查看控制器A.
单元2:按钮2>按下以查看控制器B.
它工作正常.但是,当我尝试按住并同时按下两个按钮时,我的应用会收到以下警告:
nested push animation can result in corrupted navigation bar.
Finishing up a navigation transition in an unexpected state.
Navigation Bar subview tree might get corrupted.
我应该如何禁用单元格上的多点击按钮?
解决方法
您可以创建类别的UINavigationController以推送到另一个视图Controller.确保在返回当前viewController之前启用该按钮
@interface UINavigationController (CompletionHandler) - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated completion:(void (^)(void))completion; @end @implementation UINavigationController (CompletionHandler) - (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated completion:(void (^)(void))completion { [CATransaction begin]; [CATransaction setCompletionBlock:completion]; [self pushViewController:viewController animated:animated]; [CATransaction commit]; } @end
调用以下代码以推送到另一个ViewController
[self.navigationController pushViewController:ControllerObj animated:YES completion:^{ btn.userInteractionEnabled = NO; // Your Button Object NSLog(@"COMPLETED"); }];
java - 如何去掉 JFrame 上的最大化最小化和关闭按钮

java – 在单击按钮时打开时,新JFrame处于禁用状态
现在我通过以下方式调用类的方法:
>一个简单的类(非GUI)
>在按钮上单击JFrame
在第一种情况下,它工作得很好(即大小选择器窗口打开,用户拖动它,调整大小并返回窗口坐标)但在第二种情况下,窗口打开但在禁用模式下,用户无法执行任何操作在窗户上操作,甚至无法关闭窗户.
这是我正在使用的代码
ScreenSizeSelector类:
package screenrecorder; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.Rectangle; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import javax.swing.BorderFactory; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.Border; class ScreenSizeSelector { private JFrame sizeSelectorWindow; private JButton btnOk; private Border emptyBorder; private Rectangle screenArea = null; private static Object lock = new Object(); public Rectangle getSelectedScreenSize(){ screenSizeSelectorUI(); Thread t = new Thread() { public void run() { synchronized(lock) { while (sizeSelectorWindow.isVisible()) try { lock.wait(); } catch (InterruptedException e) { e.printstacktrace(); } } } }; t.start(); try { t.join(); } catch (InterruptedException e) { e.printstacktrace(); } return screenArea; } public void screenSizeSelectorUI() { emptyBorder = BorderFactory.createEmptyBorder(); sizeSelectorWindow = new JFrame("Select screen area"); btnOk = new JButton("Start"); sizeSelectorWindow.setUndecorated(true); sizeSelectorWindow.getRootPane().setwindowdecorationStyle(3); sizeSelectorWindow.setBackground( new Color(0,0) ); sizeSelectorWindow.setSize(400,400); sizeSelectorWindow.addWindowListener(new WindowEventHandler()); sizeSelectorWindow.setAlwaysOnTop(true); sizeSelectorWindow.setLocationRelativeto(null); btnOk.setToolTipText("Click this button after deciding the screen area"); btnOk.addActionListener(new ButtonEventHandler()); JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT)); buttonPanel.setBackground(new Color(0,0)); buttonPanel.add(btnOk); sizeSelectorWindow.add(buttonPanel,BorderLayout.soUTH); sizeSelectorWindow.setVisible(true); sizeSelectorWindow.setEnabled(true); } class ButtonEventHandler implements ActionListener { @Override public void actionPerformed(ActionEvent e) { int x = (int)(sizeSelectorWindow.getBounds().getX()); int y = (int) (sizeSelectorWindow.getBounds().getY()); int width = sizeSelectorWindow.getWidth(); int height = sizeSelectorWindow.getHeight(); screenArea = new Rectangle(x,y,width,height); sizeSelectorWindow.dispatchEvent(new WindowEvent(sizeSelectorWindow,WindowEvent.WINDOW_CLOSING)); } } class WindowEventHandler implements WindowListener{ @Override public void windowOpened(WindowEvent e) { } @Override public void windowClosing(WindowEvent e) { synchronized (lock) { sizeSelectorWindow.setVisible(false); lock.notify(); } } @Override public void windowClosed(WindowEvent e) { } @Override public void windowIconified(WindowEvent e) { sizeSelectorWindow.setState(JFrame.norMAL); Toolkit.getDefaultToolkit().beep(); } @Override public void windowDeiconified(WindowEvent e) {} @Override public void windowActivated(WindowEvent e) {} @Override public void windowDeactivated(WindowEvent e) {} } }
Test1类:
package screenrecorder; import java.awt.Rectangle; public class Test1{ public static void main(String[] args){ System.out.println(new ScreenSizeSelector().getSelectedScreenSize()); } }
Test2类:
package screenrecorder; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; public class Test2 extends JFrame{ public Test2(){ JButton btn = new JButton("Click ME"); btn.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println(new ScreenSizeSelector().getSelectedScreenSize()); } }); getContentPane().add(btn); setSize(100,100); setVisible(true); setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args){ new Test2(); } }
任何帮助表示赞赏.
解决方法
sizeSelectorWindow.setBackground( new Color(0,0) );
如果你看一下颜色构造函数javadocs:
06001
Creates an sRGB color with the specified red,green,blue,and alpha values in the range (0 – 255).
Parameters:
- r – the red component
- g – the green component
- b – the blue component
- a – the alpha component
您将alpha值设置为0,使其完全不可见. (alpha值是透明度),第二个窗口是未修饰的,不会在关闭时退出,所以你根本不知道它在那里.
我得不到的是test1是如何工作的.
旁注:当我在Mac上尝试测试1时,它只显示按钮,我所能做的就是点击它.按钮将消失,但应用程序仍将运行.
这基本上是一个猜测,但很多swing组件向操作系统发出请求,而不是命令.有点像说,“嘿,我可以把它调到400,400吗?”操作系统在技术上不必做你说的.我正在阅读How does Java handle multithreading?,它说多线程真的取决于操作系统.我有一种感觉,当它自己调用screenSelectorUI()时会在某处弄乱,但是当它在某个按钮的线程内时,它会以某种方式正确.
今天关于如何禁用和或隐藏JFrame上的关闭的介绍到此结束,谢谢您的阅读,有关android – 如何禁用电源按钮?、ios – 如何禁用多按钮?、java - 如何去掉 JFrame 上的最大化最小化和关闭按钮、java – 在单击按钮时打开时,新JFrame处于禁用状态等更多相关知识的信息可以在本站进行查询。
本文标签: