下面列出了javax.swing.JFrame#setUndecorated ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public static void highlight(int x, int y, int width, int height, int time) {
JFrame f = new JFrame();
f.setUndecorated(true);
f.setBackground(new Color(0, 0, 0, 0));
f.setAlwaysOnTop(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setType(JFrame.Type.UTILITY);
f.setFocusableWindowState(false);
f.setAutoRequestFocus(false);
f.setLocation(x, y);
f.setSize(width, height);
f.getRootPane().setBorder(BorderFactory.createLineBorder(Color.RED, 3));
f.setVisible(true);
delay(time);
f.dispose();
}
private void createWindow() {
frame = new JFrame();
panel = new JPanel();
JLabel label = new JLabel("����");
panel.add(label);
frame.add(new Background(0, 0, 0, 0, null,null));
frame.setSize(300, 300);
// ���ô������롣
frame.setLocation(
this.mainFrame.getX()
+ ((this.mainFrame.getWidth() + this.frame.getWidth()) / 2),
this.mainFrame.getY()
+ ((this.mainFrame.getHeight() + this.frame.getHeight()) / 2));
frame.setUndecorated(true);
frame.setAlwaysOnTop(true);
frame.addMouseMotionListener(this);
frame.addMouseListener(this);
frame.setVisible(true);
}
@Override
public void run() {
final JMenuBar menubar = new JMenuBar();
menubar.add(new JMenu(""));
menubar.add(new JMenu(""));
final JFrame frame = new JFrame();
frame.setUndecorated(true);
frame.setJMenuBar(menubar);
frame.setSize(W / 3, H / 3);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
// draw menu bar using standard order.
final BufferedImage bi1 = step1(menubar);
// draw menu border on top of the menu bar, nothing should be changed.
final BufferedImage bi2 = step2(menubar);
frame.dispose();
for (int x = 0; x < W; ++x) {
for (int y = 0; y < H; ++y) {
if (bi1.getRGB(x, y) != bi2.getRGB(x, y)) {
try {
ImageIO.write(bi1, "png", new File("image1.png"));
ImageIO.write(bi2, "png", new File("image2.png"));
} catch (IOException e) {
e.printStackTrace();
}
throw new RuntimeException("Failed: wrong color");
}
}
}
}
public static ImgWindow newWindow (Mat mat, boolean undecorated) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setSize(400, 400);
frame.setUndecorated(undecorated);
ImgWindow panel = new ImgWindow(frame);
panel.setLayout(new FlowLayout(FlowLayout.LEFT));
frame.add(panel);
frame.setVisible(true);
panel.setImage(mat);
return panel;
}
@Override
public void run() {
final JMenuBar menubar = new JMenuBar();
menubar.add(new JMenu(""));
menubar.add(new JMenu(""));
final JFrame frame = new JFrame();
frame.setUndecorated(true);
frame.setJMenuBar(menubar);
frame.setSize(W / 3, H / 3);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
// draw menu bar using standard order.
final BufferedImage bi1 = step1(menubar);
// draw menu border on top of the menu bar, nothing should be changed.
final BufferedImage bi2 = step2(menubar);
frame.dispose();
for (int x = 0; x < W; ++x) {
for (int y = 0; y < H; ++y) {
if (bi1.getRGB(x, y) != bi2.getRGB(x, y)) {
try {
ImageIO.write(bi1, "png", new File("image1.png"));
ImageIO.write(bi2, "png", new File("image2.png"));
} catch (IOException e) {
e.printStackTrace();
}
throw new RuntimeException("Failed: wrong color");
}
}
}
}
@Override
public void run() {
final JMenuBar menubar = new JMenuBar();
menubar.add(new JMenu(""));
menubar.add(new JMenu(""));
final JFrame frame = new JFrame();
frame.setUndecorated(true);
frame.setJMenuBar(menubar);
frame.setSize(W / 3, H / 3);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
// draw menu bar using standard order.
final BufferedImage bi1 = step1(menubar);
// draw menu border on top of the menu bar, nothing should be changed.
final BufferedImage bi2 = step2(menubar);
frame.dispose();
for (int x = 0; x < W; ++x) {
for (int y = 0; y < H; ++y) {
if (bi1.getRGB(x, y) != bi2.getRGB(x, y)) {
try {
ImageIO.write(bi1, "png", new File("image1.png"));
ImageIO.write(bi2, "png", new File("image2.png"));
} catch (IOException e) {
e.printStackTrace();
}
throw new RuntimeException("Failed: wrong color");
}
}
}
}
@Override
public void run() {
final JMenuBar menubar = new JMenuBar();
menubar.add(new JMenu(""));
menubar.add(new JMenu(""));
final JFrame frame = new JFrame();
frame.setUndecorated(true);
frame.setJMenuBar(menubar);
frame.setSize(W / 3, H / 3);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
// draw menu bar using standard order.
final BufferedImage bi1 = step1(menubar);
// draw menu border on top of the menu bar, nothing should be changed.
final BufferedImage bi2 = step2(menubar);
frame.dispose();
for (int x = 0; x < W; ++x) {
for (int y = 0; y < H; ++y) {
if (bi1.getRGB(x, y) != bi2.getRGB(x, y)) {
try {
ImageIO.write(bi1, "png", new File("image1.png"));
ImageIO.write(bi2, "png", new File("image2.png"));
} catch (IOException e) {
e.printStackTrace();
}
throw new RuntimeException("Failed: wrong color");
}
}
}
}
public void setup() {
super.setup();
fxPanel = new JFXPanel();
jframe = (JFrame)((PSurfaceAWT.SmoothCanvas) getSurface().getNative()).getFrame();
jframe.removeNotify();
jframe.setUndecorated(true);
jframe.setLayout(null);
jframe.addNotify();
jframe.setAlwaysOnTop(true);
jframe.add(fxPanel);
jframe.setSize(750, 900);
jframe.setVisible(true);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Platform.runLater(new Runnable() {
@Override
public void run() {
initFX(fxPanel);
}
});
// set special window properties
jframe.setContentPane(fxPanel);
fxPanel.setFocusable(false);
fxPanel.setFocusTraversalKeysEnabled(false);
fxPanel.requestFocus();
fxPanel.requestFocusInWindow();
}
private static BufferedImage renderImage(JPanel panel) {
JFrame frame = new JFrame();
frame.setUndecorated(true);
frame.getContentPane().add(panel);
frame.pack();
BufferedImage bi = new BufferedImage(panel.getWidth(), panel.getHeight(), BufferedImage.TYPE_INT_ARGB);
Graphics2D graphics = bi.createGraphics();
panel.print(graphics);
graphics.dispose();
frame.dispose();
return bi;
}
public static JFrame createWindow() {
JFrame window = new JFrame();
window.setUndecorated(true);
window.setExtendedState(Frame.MAXIMIZED_BOTH);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.getContentPane().setLayout(new BorderLayout(0, 0));
return window;
}
@Override
public void run() {
final JMenuBar menubar = new JMenuBar();
menubar.add(new JMenu(""));
menubar.add(new JMenu(""));
final JFrame frame = new JFrame();
frame.setUndecorated(true);
frame.setJMenuBar(menubar);
frame.setSize(W / 3, H / 3);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
// draw menu bar using standard order.
final BufferedImage bi1 = step1(menubar);
// draw menu border on top of the menu bar, nothing should be changed.
final BufferedImage bi2 = step2(menubar);
frame.dispose();
for (int x = 0; x < W; ++x) {
for (int y = 0; y < H; ++y) {
if (bi1.getRGB(x, y) != bi2.getRGB(x, y)) {
try {
ImageIO.write(bi1, "png", new File("image1.png"));
ImageIO.write(bi2, "png", new File("image2.png"));
} catch (IOException e) {
e.printStackTrace();
}
throw new RuntimeException("Failed: wrong color");
}
}
}
}
@Override
public void run() {
final JMenuBar menubar = new JMenuBar();
menubar.add(new JMenu(""));
menubar.add(new JMenu(""));
final JFrame frame = new JFrame();
frame.setUndecorated(true);
frame.setJMenuBar(menubar);
frame.setSize(W / 3, H / 3);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
// draw menu bar using standard order.
final BufferedImage bi1 = step1(menubar);
// draw menu border on top of the menu bar, nothing should be changed.
final BufferedImage bi2 = step2(menubar);
frame.dispose();
for (int x = 0; x < W; ++x) {
for (int y = 0; y < H; ++y) {
if (bi1.getRGB(x, y) != bi2.getRGB(x, y)) {
try {
ImageIO.write(bi1, "png", new File("image1.png"));
ImageIO.write(bi2, "png", new File("image2.png"));
} catch (IOException e) {
e.printStackTrace();
}
throw new RuntimeException("Failed: wrong color");
}
}
}
}
@Override
public void run() {
final JMenuBar menubar = new JMenuBar();
menubar.add(new JMenu(""));
menubar.add(new JMenu(""));
final JFrame frame = new JFrame();
frame.setUndecorated(true);
frame.setJMenuBar(menubar);
frame.setSize(W / 3, H / 3);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
// draw menu bar using standard order.
final BufferedImage bi1 = step1(menubar);
// draw menu border on top of the menu bar, nothing should be changed.
final BufferedImage bi2 = step2(menubar);
frame.dispose();
for (int x = 0; x < W; ++x) {
for (int y = 0; y < H; ++y) {
if (bi1.getRGB(x, y) != bi2.getRGB(x, y)) {
try {
ImageIO.write(bi1, "png", new File("image1.png"));
ImageIO.write(bi2, "png", new File("image2.png"));
} catch (IOException e) {
e.printStackTrace();
}
throw new RuntimeException("Failed: wrong color");
}
}
}
}
private
static
JFrame
createSplash()
{
JFrame splash = new JFrame();
// Build frame.
splash.setBounds(createCenteredScreenBounds(350, 85));
splash.setContentPane(new Panel());
splash.setResizable(false);
splash.setUndecorated(true);
return splash;
}
public void setup() {
super.setup();
// set special window properties
jframe = (JFrame)((PSurfaceAWT.SmoothCanvas) getSurface().getNative()).getFrame();
jframe.removeNotify();
jframe.setUndecorated(true);
jframe.setLayout(null);
jframe.addNotify();
jframe.setAlwaysOnTop(true);
pg = createGraphics(width, height);
cursor = Base64Image.decodePImageFromBase64("iVBORw0KGgoAAAANSUhEUgAAAGoAAAC1CAMAAACAl5pfAAAAYFBMVEVHcEyRkZEQEBAAAAB1dXVISEgmJib///8cHBwGBgYoKCj9/f3////T09O8vLzl5eX19fVubm4yMjJCQkJXV1eJiYmhoaEvLy+YmJjY2Ng6Ojqurq7Hx8f19fXo6OheXl4dpwGJAAAAIHRSTlMAbe//ibfYBOP5//7/7u3x9vP9+fbv7s/kJcVRNwoVoJWYs8AAAAPzSURBVHgBvM2FiURRAASw+679t3uGDSwamJcG8jXUNC/LvI6YtuXfftSnaVlGXecy7LqWvPpVXv0qr36VV7vKq1/l1a7yald5tau82lVe7SqvdpVXuypcUd3P3b2iettXVO0rq/KVVfnKqnxlVb6yKl9Zla+syldW5Sur8pVV+cqqfGVVvrIqX58VX17xBRVfUNkFFVxQwQUVXFDBpRVcWsGlFVxawcWVX1755ZVfXvkFFV9Q8QUVX1DxBRVfUPEFFV9Q8QUVX1DRBRVcUMEFFVxQwQUVXFDBBRVfUPEFFV9Q8QUVX1DxBRVfUPEFFV9Q8QUVX1DxBRVfUPEFFV9Q8QUVX1DxBRVfUPEFFV9Q8QUVX1DxBRVfUPEFFV9Q8WWVX1799HIeWo6DMBTF3cBx7/3/v3L7xsqGvMXImXd62gWPuLKmZXmWFUVZam1kBc8sBqpSj3Urkrpu2raquq6Xryw3VPsA4VAWf+y2zOCIGoPr8dxQlQMqdUPl6jrKByiUL0S111GRI6q8vq3pvyiddxm+gvMQx2nq+1LK9yC5gGI/z6pSGSqMVTxl26d1WRbPC8PjiKL550riY0e2oFZQJdjWLOyCUdXfD6xNT/3NdgOqO5WKthXyUT352rcvz9bkxHBRVAmGhRTn0wsTlVFSoHpwBWMGiiza6vpO11FAB6oA24rcUdrQ+2ogQplcRwFzK9SLQ2eUMqGqf0mk3lNXFCWhbWVUhE6ompKiE5XzREhQZpJITxYwV7BfQRESXawXWInwuI5qKGmgrzCJsDnr/TKqVS+32sf7K6jJSfcuoipKSn83ot1OhOk1VEdJ/t+WN4Bt5UiEANU/kR41tTiKEKBySpJkkT4QIbmn3qxR4zuSCM9taYYIZUBjFs0WPFIxGr8EpEciTuMHKMN7pvci1KQwBmsUOI1IhKOtCKUFiSdCgArxyxrU+O1QeGV8EVIUPPNEhJ2rCKUFCYgQTEAAhct1PVEZbvwQhe6IsQjxBARQaQJQSIR4AjKgfKjmRHInIJ82KBS+CA/SNnAm7gS0+YSEE3MnoP3XJ6SAdGPjX8NwFTbx7USYCGawCOnsFzIQQISg3nmZGRMQCEOEw71/nl3jCYgf68bPT8KcgHDsRQgaP4iLCDVo/CBuIgQTEIiLCDUUoUP4ExCOXePXmi9C/gT0UREu94ow/zoRKnAFPytC3SoV3CNCPAFlNeHgW2Ve4+/Ihnhywo2/bAiIJww8AeVPHND2mSLsKhOI6oIvQpx0ETclxKB5FbdlAxx57OLORO9AsSduzmTeUAS6L1uEJH6YfPDfEJEMi/hQEskvBYd6T28tBWCnaBUfT+j/LIVNWOY7PppBCtOtd0oAAAAASUVORK5CYII=");
JPanel panel = new JPanel() {
private static final long serialVersionUID = 1L;
@Override
protected void paintComponent(Graphics graphics) {
if (graphics instanceof Graphics2D) {
Graphics2D g2d = (Graphics2D) graphics;
g2d.drawImage(pg.image, 0, 0, null);
}
}
};
jframe.setContentPane(panel);
panel.setFocusable(true);
panel.setFocusTraversalKeysEnabled(false);
panel.requestFocus();
panel.requestFocusInWindow();
}
public static JFrame createWindow() {
JFrame window = new JFrame();
window.setUndecorated(true);
window.setExtendedState(Frame.MAXIMIZED_BOTH);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.getContentPane().setLayout(new BorderLayout(0, 0));
return window;
}
private static void makeUI() {
frame = new JFrame("Keyboard Shortcuts Pane");
frame.setUndecorated(true);
frame.setBackground(new Color(1, 1, 1, 0f));
// frame.setFocusableWindowState(false);
frame.setSize(100, 30);
frame.setAlwaysOnTop(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setFocusableWindowState(false);
frame.setFocusable(true);
frame.setVisible(false);
}
public SplashScreen(Icon icon) {
frame = new JFrame();
frame.setLayout(null);
frame.setUndecorated(true);
frame.setSize(icon.getIconWidth(), icon.getIconHeight()+TEXT_HEIGHT);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
frame.getRootPane().setBorder(new LineBorder(VisualConstants.SPLASH_BORDER_COLOR, 1));
JLabel imageLabel = new JLabel(icon);
imageLabel.setSize(icon.getIconWidth(), icon.getIconHeight());
frame.add(imageLabel);
imageLabel.setLocation(0, 0);
textLabel = new JLabel();
textLabel.setBorder(BorderFactory.createEmptyBorder(5, 10, 5, 10));
textLabel.setFont(VisualConstants.SPLASH_SCREEN_FONT);
textPanel = new JPanel(new BorderLayout());
textPanel.setLocation(0, icon.getIconHeight());
textPanel.setSize(icon.getIconWidth(), TEXT_HEIGHT);
textPanel.setBackground(Color.WHITE);
textPanel.setOpaque(true);
textPanel.setBorder(BorderFactory.createMatteBorder(1, 0, 0, 0, VisualConstants.SPLASH_BORDER_COLOR));
textPanel.add(textLabel);
frame.add(textPanel);
frame.setVisible(true);
}
public SwingCredentialsDialog(String title, Prompt[] prompts) {
this.title = title;
this.prompts = prompts;
// the main panel
JPanel main = new JPanel(new BorderLayout());
titleLabel = new JLabel(title);
titleLabel.setAlignmentX(0.5f);
titleLabel.setFont(new Font("SansSerif", Font.BOLD, 16));
main.add(titleLabel, BorderLayout.NORTH);
// Labels
GridBagLayout gbl = new GridBagLayout();
JPanel lpane = new JPanel(gbl);
GridBagConstraints gbc = new GridBagConstraints();
lpane.setBorder(BorderFactory.createEmptyBorder(8, 0, 0, 0));
labels = new JLabel[prompts.length];
fields = new JTextComponent[prompts.length];
browse = new JButton[prompts.length];
for (int i = 0; i < prompts.length; i++) {
labels[i] = new JLabel(prompts[i].label);
labels[i].setFont(new Font("SansSerif", Font.BOLD, 14));
lpane.add(labels[i]);
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.gridy = i;
gbc.gridx = 0;
gbc.weightx = 0.0;
gbl.setConstraints(labels[i], gbc);
switch (prompts[i].type) {
case Prompt.TYPE_TEXT:
fields[i] = new JTextField();
break;
case Prompt.TYPE_HIDDEN_TEXT:
fields[i] = new JPasswordField();
break;
case Prompt.TYPE_FILE:
fields[i] = new JTextField();
}
fields[i].addFocusListener(this);
fields[i].setSize(fields[i].getPreferredSize().height + 8, 120);
fields[i].addKeyListener(this);
if (prompts[i].def != null) {
fields[i].setText(prompts[i].def);
}
lpane.add(fields[i]);
gbc.fill = GridBagConstraints.HORIZONTAL;
gbc.gridx = 1;
gbc.weightx = 1.0;
gbl.setConstraints(fields[i], gbc);
if (prompts[i].type == Prompt.TYPE_FILE) {
browse[i] = new JButton("...");
browse[i].addActionListener(this);
lpane.add(browse[i]);
gbc.gridx = 2;
gbc.weightx = 0.0;
gbl.setConstraints(browse[i], gbc);
}
if (prompts[i].def == null && focusIndex == -1) {
focusIndex = i;
}
}
main.add(lpane, BorderLayout.CENTER);
main.setBorder(BorderFactory.createCompoundBorder(BorderFactory
.createLineBorder(Color.BLACK, 1), BorderFactory
.createEmptyBorder(8, 8, 8, 8)));
dialog = new JFrame();
dialog.setTitle("SSH " + title);
dialog.getContentPane().add(main);
dialog.setSize(Math.max(320, titleLabel.getPreferredSize().width),
titleLabel.getPreferredSize().height + prompts.length
* (labels[0].getPreferredSize().height + 8) + 24);
dialog.setLocationRelativeTo(null);
dialog.setUndecorated(true);
}
public static void makeFullScreen(JFrame frame) {
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setUndecorated(true);
frame.setResizable(false);
}