[英]Can I permanently remove access to the taskbar when a JFrame is Maximized?
我目前正在為Capstone項目構建POS系統,以完成學位。 我已經超出了項目的規格范圍(在我的產品組合中看起來比“命令窗口”界面更好),並且想添加一個附加功能。
當我想到POS系統時,我想到的一個應用程序向用戶隱藏了主要的“ Windows”功能,並且僅允許最終用戶完成其工作。 為此,我想在應用程序運行時完全刪除任務欄。 我目前能夠使JFrame全屏顯示,並且這將隱藏Windows任務欄。
但是,當用戶按ALT + TAB或鍵盤上的“ Windows”鍵時,任務欄將再次顯示。 這是我要刪除的功能。
這是我的SSCCE:
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class TestWindow extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private JPanel contentPane;
public void buildGUI() {
setUndecorated(true);
setResizable(false);
Toolkit tk = Toolkit.getDefaultToolkit();
int xSize = ((int) tk.getScreenSize().getWidth());
int ySize = ((int) tk.getScreenSize().getHeight());
setSize(xSize, ySize);
setAlwaysOnTop(true);
contentPane = new JPanel();
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
setVisible(true);
JPanel panel = new JPanel();
contentPane.add(panel, BorderLayout.CENTER);
JButton btn = new JButton("Exit");
btn.addActionListener(this);
panel.add(btn);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
new TestWindow().buildGUI();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getActionCommand().equals("Exit")) {
System.exit(0);
}
}
}
所以我只需要添加一個keyListener來檢查是否按下了ALT + TAB或Windows鍵? 還是有更好的方法來解決這個問題?
它要求您使用SetWindowsHookEx設置向上的低級鍵盤掛鈎(請參閱:WH_KEYBOARD_LL)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.