В настоящее время я создаю систему POS для моего проекта Capstone, чтобы завершить свою степень. Я уже прошел WAY выше и выше спецификаций для проекта (будет выглядеть лучше в моем портфолио, чем вызванный интерфейс Command Window), и хотел бы добавить одну дополнительную функцию.Могу ли я навсегда удалить доступ к панели задач при максимальном использовании 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);
}
}
}
Так что мне просто нужно добавить KeyListener, чтобы проверить, если ALT + TAB или клавишу Windows, нажата? Или есть лучший способ справиться с этим?
Вы хотите программу Java для переопределения окна ключа в окнах? Вы также хотите, чтобы он перекрывал ctrl-alt-delete? – esej
Я не думаю, что вы сможете это сделать, поскольку окна перехватывают команду alt + tab (IIRC), и она никогда не доходит до приложения –
@esej CTRL + ALT + DEL все равно будет в порядке. Это будет работать в среде Windows, поэтому CTRL + ATL + DEL должен быть доступен в случае сбоя. –