¿Hay alguna lista en alguna parte de las claves UIManager.getColor()
para Swing? Parece que no puedo encontrarlo en línea, solo referencias ocasionales a cadenas como "Panel.background"
y "Table.selectionBackground"
.Teclas de oscilación UIManager.getColor()
Respuesta
que estaba buscando lo mismo y encontré esta página, así como una excelente visión de conjunto de todas estas propiedades en http://nadeausoftware.com/node/85.
Dependen de la implementación de Look and Feel. Busque en BasicLookAndFeel.java
las teclas básicas. No espere que todos los PL & F se comporten de la misma manera, o que permanezcan iguales entre versiones.
No creo que haya un conjunto estándar definido de claves. Sin embargo, usted podría tratar este fragmento de código para enumerar los que están disponibles actualmente en orden alfabético:
List<String> colors = new ArrayList<String>();
for (Map.Entry<Object, Object> entry : UIManager.getDefaults().entrySet()) {
if (entry.getValue() instanceof Color) {
colors.add((String) entry.getKey()); // all the keys are strings
}
}
Collections.sort(colors);
for (String name : colors)
System.out.println(name);
Esto produce una lista demasiado larga para reproducir aquí.
Actualmente (jdk1.8.0_45), para 'systemLookAndFeelClassName = com. sun.java.swing.plaf.windows.WindowsLookAndFeel', las clases no son 'java.awt.Color', sino' com.sun.java.swing.plaf.windows.DesktopProperty', pero fallan en la instancia de verificación desafortunadamente. –
@mmyers me inspiró. Aquí hay un breve programa para enumerar los valores predeterminados de UIManager en una tabla ordenable.
package com.example.test.gui;
import java.awt.Color;
import java.awt.Component;
import java.util.Map;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.UIManager;
import javax.swing.table.DefaultTableCellRenderer;
import ca.odell.glazedlists.BasicEventList;
import ca.odell.glazedlists.EventList;
import ca.odell.glazedlists.GlazedLists;
import ca.odell.glazedlists.SortedList;
import ca.odell.glazedlists.gui.AbstractTableComparatorChooser;
import ca.odell.glazedlists.gui.TableFormat;
import ca.odell.glazedlists.swing.EventTableModel;
import ca.odell.glazedlists.swing.TableComparatorChooser;
public class UIManagerDefaultsViewer {
public static class UIEntry
{
final private String key;
final private Object value;
UIEntry(Map.Entry<Object,Object> e)
{
this.key = e.getKey().toString();
this.value = e.getValue();
}
public String getKey() {
return key;
}
public Object getValue() {
return value;
}
public Class getValueClass() {
if (value == null)
return null; // ?!?!?!
return value.getClass();
}
public String getClassName() {
// doesn't handle arrays properly
if (value == null)
return "";
return value.getClass().getName();
}
}
public static class UIEntryRenderer extends DefaultTableCellRenderer
{
Color[] defaults = new Color[4];
public UIEntryRenderer()
{
super();
defaults[0] = UIManager.getColor("Table.background");
defaults[1] = UIManager.getColor("Table.selectionBackground");
defaults[2] = UIManager.getColor("Table.foreground");
defaults[3] = UIManager.getColor("Table.selectionForeground");
}
public void setDefaultColors(Component cell, boolean isSelected)
{
cell.setBackground(defaults[isSelected ? 1 : 0]);
cell.setForeground(defaults[isSelected ? 3 : 2]);
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column)
{
Component cell = super.getTableCellRendererComponent(table, value,
isSelected, hasFocus, row, column);
if (table.convertColumnIndexToModel(column) == 1) // the value column
{
final EventTableModel<UIEntry> tableModel =
(EventTableModel<UIEntry>) table.getModel();
UIEntry e = tableModel.getElementAt(row);
JLabel l = (JLabel)cell;
if (value instanceof Color)
{
Color c = (Color)value;
cell.setBackground(c);
cell.setForeground(
c.getRed()+c.getGreen()+c.getBlue() >= 128*3
? Color.black : Color.white);
// choose either black or white depending on brightness
l.setText(String.format("Color 0x%08x (%d,%d,%d alpha=%d)",
c.getRGB(), c.getRed(), c.getGreen(), c.getBlue(), c.getAlpha()));
return cell;
}
else if (e.getKey().endsWith("ont"))
// possible font, not always ".font"
{
// fonts are weird, for some reason the value returned
// in the entry set of UIManager.getDefaults()
// is not the same type as the value "v" below
Object v = UIManager.get(e.getKey());
if (v instanceof javax.swing.plaf.FontUIResource)
{
javax.swing.plaf.FontUIResource font =
(javax.swing.plaf.FontUIResource)v;
l.setText("Font "+font.getFontName()+" "+font.getSize());
}
}
}
setDefaultColors(cell, isSelected);
return cell;
}
}
public static void main(String[] args) {
final EventList<UIEntry> uiEntryList =
GlazedLists.threadSafeList(new BasicEventList<UIEntry>());
for (Map.Entry<Object,Object> key : UIManager.getDefaults().entrySet())
{
uiEntryList.add(new UIEntry(key));
}
final SortedList<UIEntry> sortedUIEntryList = new SortedList<UIEntry>(uiEntryList, null);
// build a JTable
String[] propertyNames = new String[] {"key","value","className"};
String[] columnLabels = new String[] {"Key", "Value", "Class"};
TableFormat<UIEntry> tf = GlazedLists.tableFormat(UIEntry.class, propertyNames, columnLabels);
EventTableModel<UIEntry> etm = new EventTableModel<UIEntry>(sortedUIEntryList, tf);
JTable t = new JTable(etm);
TableComparatorChooser<UIEntry> tcc = TableComparatorChooser.install(t,
sortedUIEntryList, AbstractTableComparatorChooser.SINGLE_COLUMN,
tf);
sortedUIEntryList.setComparator(tcc.getComparatorsForColumn(0).get(0));
// default to sort by the key
t.setDefaultRenderer(Object.class, new UIEntryRenderer());
JFrame f = new JFrame("UI Manager Defaults Viewer");
// show the frame
f.add(new JScrollPane(t));
f.pack();
f.setLocationRelativeTo(null);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}
En el constructor de la interfaz gráfica de usuario de NetBeans, cuando edita un color, puede elegir de una lista J con todos estos enumerados (sin los valores de color reales). De hecho, de ahí surgió la idea de que podría ser posible enumerarlos. Una mesa es mucho más agradable, sin embargo. –
Este programa es el mejor que he visto para la visualización de los valores UIManager (por ejemplo, fuentes, colores, bordes): http://tips4java.wordpress.com/2008/10/09/uimanager-defaults/
Carece de búsqueda, pero puede filtrar por tipo de componente o valor, que es bastante grande .
- 1. oscilación categoría
- 2. Disposición de oscilación Java
- 3. oscilación transparente de Windows
- 4. oscilación teclado en pantalla
- 5. Oscilación visual en Eclipse
- 6. Oscilación Archivos grandes Rendimiento
- 7. oscilación con barra de progreso
- 8. Modificador de oscilación y final
- 9. imagen de fondo de oscilación de java
- 10. Ajustes de oscilación para Mac OS X
- 11. Componente de oscilación y edición jdk problema
- 12. Java mesa de oscilación del árbol
- 13. Scala oscilación de ListView/Añadir Elementos Eventos
- 14. Oscilación - reemplazo de la señal Qt/ranuras
- 15. botón Eliminar "X" en el oscilación JDialog
- 16. oscilación BoxLayout problema JComboBox sin utilizar setXXXSize
- 17. Cambio de oscilación colores de las celdas JTable
- 18. ¿Alguien puede explicarme este método de oscilación de javax?
- 19. Detectando combinaciones de teclas
- 20. vb.net combinación de teclas
- 21. Registrador de teclas multiplataforma
- 22. Oscilación: establecer el tamaño del área de contenido JFrame
- 23. Oscilación de luz verde horizontal mientras se carga algo C#
- 24. Cómo cambiar brecha en la etiqueta de oscilación
- 25. oscilación interfaz de usuario no tiene sistema operativo nativo mirar
- 26. Teclas de flecha de reventado
- 27. cacao: Simular Macbook teclas superiores y teclas multimedia
- 28. No se pudo encontrar o cargar oscilación principal clase Java
- 29. ¿Cuál es la oscilación equivalente a HTML <optgroup>
- 30. Emacs simples combinaciones de teclas
Encontré una práctica aplicación Java Web Start que debería ayudar: http://tips4java.wordpress.com/2008/10/09/uimanager-defaults/ –