私は現在、自分の学位を取得するための私のCapstoneプロジェクトのためのPOSシステムを構築しています。私はすでにプロジェクトの仕様を上回っています(私のポートフォリオではCommand Windowインターフェイスよりもうまく見えます)、もう1つの機能を追加したいと考えています。JFrameが最大化されたときにタスクバーへのアクセスを永久に削除することはできますか?
私は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を追加する必要があるでしょうか?または、これを処理するより良い方法はありますか?
を使用していますか? ctrl-alt-deleteを上書きしたいのですか? – esej
ウィンドウがalt + tabコマンド(IIRC)を傍受してもアプリケーションに到達しないので、あなたがそれを行うことはできないと思います。 –
@esej CTRL + ALT + DELはまだ問題ありません。これはWindows環境で実行されるため、CTRL + ATL + DELはクラッシュした場合でも使用できる必要があります。 –