私は現在、学位を取得するために Capstone プロジェクト用の POS システムを構築しています。私はすでにプロジェクトの仕様をはるかに超えており (私のポートフォリオでは、コマンド ウィンドウ インターフェイスに求められるものよりも見栄えがよくなります)、もう 1 つの機能を追加したいと考えています。
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);
}
}
}
ALT+TABまたはWindowsキーが押されているかどうかを確認するには、keyListenerを追加するだけでよいでしょうか? または、これを処理するより良い方法はありますか?