Comment supprimer la boîte de fenêtre de n'importe quelle interface graphique java
Comment supprimer la boîte de fenêtre de tout programme java. Parce que je veux le faire paraître sans frontière. Je sais que tous les fichiers jar s'exécutant sur jre obtiennent automatiquement une fenêtre comme celle-ci. Je veux donc savoir s'il existe une solution de contournement à ce sujet.
Merci d'avance
Voici une photo de ce que je veux faire exactement
1 answers
Voir Frame#setUndecorated
Vous pouvez également utiliser un JWindow
qui n'est pas décoré par défaut.
Vérifier ce et ce par exemple utilise
Mise à Jour
Si vous supprimez la bordure, vous devenez responsable du déplacement et du redimensionnement de la fenêtre...
Cette "base" exemple montre comment déplacer un JWindow
avec la souris. Cela fait une" zone de glisser " autour de la fenêtre qui est de 10 pixels de large.
Le redimensionnement serait un processus similaire, mais vous devez décider dans quelle direction redimensionner (c'est-à-dire qu'il pourrait être nécessaire de déplacer la fenêtre lorsqu'elle est redimensionnée;))
import java.awt.Component;
import java.awt.Cursor;
import java.awt.EventQueue;
import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JWindow;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
public class TestMoveWindow {
public static void main(String[] args) {
new TestMoveWindow();
}
public TestMoveWindow() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
}
JWindow window = new JWindow();
window.setSize(200, 200);
window.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
MouseAdapter mouseHandler = new MouseAdapter() {
private Point offset;
protected boolean isWithinBorder(MouseEvent e) {
Point p = e.getPoint();
Component comp = e.getComponent();
return p.x < 10 || p.y < 10 || p.x > comp.getWidth() - 10 || p.y > comp.getHeight() - 10;
}
@Override
public void mouseMoved(MouseEvent e) {
Component comp = e.getComponent();
if (isWithinBorder(e)) {
System.out.println("Move");
comp.setCursor(Cursor.getPredefinedCursor(Cursor.MOVE_CURSOR));
} else {
System.out.println("Default");
comp.setCursor(Cursor.getDefaultCursor());
}
}
@Override
public void mouseDragged(MouseEvent e) {
if (offset != null) {
Point pos = e.getLocationOnScreen();
int x = pos.x - offset.x;
int y = pos.y - offset.y;
System.out.println(x + "x" + y);
SwingUtilities.getWindowAncestor(e.getComponent()).setLocation(x, y);
}
}
@Override
public void mousePressed(MouseEvent e) {
if (isWithinBorder(e)) {
Point pos = e.getComponent().getLocationOnScreen();
offset = new Point(e.getLocationOnScreen());
offset.x -= pos.x;
offset.y -= pos.y;
}
}
};
window.getContentPane().addMouseListener(mouseHandler);
window.getContentPane().addMouseMotionListener(mouseHandler);
window.setLocationRelativeTo(null);
window.setVisible(true);
}
});
}
}