Größen der im Swing verwendeten Rahmensymbole
Können wir eine Liste verwenden, initialisieren Sie die Fenster-Symbole mit Fenster.setIconImages(Liste<? erweitert Bild - >)
. Was sind die verschiedenen Größen der icons, die üblicherweise verwendet für eine JFrame
?
Code
Dieser code stellt 64 unterschiedlich große Bilder (16x16, increment by 2) in Ikonen für die Liste.
import java.awt.*;
import java.awt.image.BufferedImage;
import java.util.ArrayList;
import java.util.Vector;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
public class FrameIconList {
public static BufferedImage getImage(int size, Color color) {
BufferedImage i = new BufferedImage(
size, size, BufferedImage.TYPE_INT_RGB);
Graphics2D g = i.createGraphics();
g.setColor(color);
g.fillRect(0, 0, size, size);
g.setColor(Color.BLACK);
int off = (size>17 ? 3 : 1);
if (off>1) g.drawRect(0, 0, size-1, size-1);
g.drawString("" + size, off, size-off);
g.dispose();
return i;
}
public static void main(String[] args) {
final Color[] colors = {
Color.GREEN,
Color.RED,
Color.YELLOW,
Color.WHITE,
Color.CYAN,
Color.MAGENTA,
Color.PINK,
Color.ORANGE
};
int s = 64;
final int[] sizes = new int[s];
for (int ii=0; ii<sizes.length; ii++) {
sizes[ii] = 16+(ii*2);
}
Runnable r = new Runnable() {
@Override
public void run() {
//the GUI as seen by the user (without frame)
JPanel gui = new JPanel(new BorderLayout());
gui.setBorder(new EmptyBorder(2, 3, 2, 3));
gui.setBackground(Color.WHITE);
ArrayList<BufferedImage> images = new ArrayList<BufferedImage>();
Vector<ImageIcon> icons = new Vector<ImageIcon>();
for (int ii=0; ii< sizes.length; ii++) {
BufferedImage bi = getImage(
sizes[ii],
colors[ii%colors.length]);
images.add(bi);
ImageIcon imi = new ImageIcon(bi);
icons.add(imi);
}
JList list = new JList(icons);
list.setVisibleRowCount(6);
gui.add(new JScrollPane(list));
JFrame f = new JFrame("Icon size usage");
f.setIconImages(images);
f.add(gui);
//Ensures JVM closes after frame(s) closed and
//all non-daemon threads are finished
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
//See http://stackoverflow.com/a/7143398/418556 for demo.
f.setLocationByPlatform(true);
//ensures the frame is the minimum size it needs to be
//in order display the components within it
f.pack();
//should be done last, to avoid flickering, moving,
//resizing artifacts.
f.setVisible(true);
}
};
//Swing GUIs should be created and updated on the EDT
//http://docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html
SwingUtilities.invokeLater(r);
}
}
InformationsquelleAutor der Frage Andrew Thompson | 2013-08-14
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Typische Ansichten für diese Windows-7-basierten PC
Hinweis: @bobbel berichtet die gleichen Größen verwendet werden, die für Windows 10.
Frame - 20x20
Task-Bar - 40x40 in der Taskleiste selbst, hover-app zeigt 20x20
Windows+Tab - 20x20
Alt+Tab - 40x40 in der unteren rechten, geschrumpft 20x20 in der oberen linken.
Task-Manager - 20x20
InformationsquelleAutor der Antwort Andrew Thompson
Antwort ist nur über Win8(HNO, 64b ....)/WinXP(nicht erwähnt, aber die Einstellung sind ganz similair)
gibt es weitere Optionen bitte sehen Bug oder feature: Swing Standard-gui-schriftart falsch für Win6+ von @kleopatra, etc
ist möglich, 64x64 icon auf dem desktop in win8
z.B. meine Einstellung (nicht erweiterte Grafiken Personalisierungen, trotz der Tatsache, dass ich Win2008/12 admin
blablabla-
"verlassen surealism mit umgekehrten Farbschema, jetzt nur mit Schwarz & Orange-Farben"-end blablabla
)InformationsquelleAutor der Antwort mKorbel
Scheint es, dass es keine Frame oder Dock-Symbole im Mac OS X 10.9 (Mavericks):
Auch kein Symbol in Activity Monitor:
InformationsquelleAutor der Antwort EthanB
Ubuntu 12.04 LTS
Dem taskbar icon Größe geändert werden kann zwischen 32 und 64, aber die ganze Zeit verwendet das 32x32 icon. Ich habe auch neu kompiliert das Programm, aber immer mit dem gleichen Symbol.
Taskleiste und Fenster (es ist kein Symbol bei windows).
Alt + Tab
kein Symbol in der task-manager
InformationsquelleAutor der Antwort blackløtus
Ich habe herausgefunden, eine interessante Sache auf Win10 (gilt auch für Win7 und Win8, aber ich habe nicht versucht es noch).
Standardmäßig Win10 wird, verwenden Sie die Bild-20x20 (klein) und 40x40 (big).
So, was passiert, wenn Sie lassen Sie zunächst Ihre Bild-Größen an 22? Es wird die Verwendung von image-Größen 30x30 (klein) und 40x40 (big)!
Erzeugung einer ganzen Tabelle zeigt Interessantes Verhalten (tests zwischen start getestet Größen Ergebnis in der bisherigen Größenordnung; so 4 auch 20x20 und 40x40):
Wenn Sie beginnen bei 2wird es mit 20x20 und 40x40.
Wenn Sie beginnen bei 22, wird es mit 30x30 und 40x40.
Wenn Sie beginnen bei 32, wird es für beide 40x40.
Wenn Sie beginnen bei 42, wird es für beide 60x60.
Wenn Sie beginnen bei 62, wird es mit 78x78 und 80x80.
Wenn Sie beginnen bei 80, wird es für beide 80x80.
Wenn Sie beginnen bei 82, wird es mit 98x98 und 120x120.
Wenn Sie beginnen bei 100, wird es mit 100x100 und 120x120.
Wenn Sie beginnen bei 102, wird es mit 118x118 und 120x120.
Wenn Sie beginnen bei 120, wird es für beide 120x120.
Wenn Sie beginnen bei 122, wird es mit 138x138 und 158x158.
... okay, das ist genug ...
Ich nicht wirklich, das Muster hinter, aber ich fand es sehr interessant...
Am Ende ist es wirklich bis zu Sie, welche Größen Sie anbieten. Jedes OS hat seine eigene Logik zu zeigen, bis bestimmte Symbole. Entweder wird es nach oben oder unten skaliert, wenn Sie nicht den genauen Bildgrößen für jedes OS.
InformationsquelleAutor der Antwort bobbel