我知道Substance的外观和感觉,并且他们拥有Office 2007外观和外观.但这种外观与Office 2007设计完全不同,例如颜色有很多不同.
是否有其他外观和感觉更准确地模仿Office 2007?
我正在编写一个自定义对话框窗口来显示长操作的状态,并且想要使用BB本机对话框中使用的小计时器图标(OS> = 4.6上的小方形时钟).
如何在对话框中使用此图形?
我已经熟悉布局管理器等等,我只是不知道位图在哪里,或者是否有API调用来获取这样的默认主题图标.
我有 JTextField.requestFocus() 行为的问题,它在 Mac OS X 上似乎有所不同。
这是我的情况:我有一个带有 JList 和 JTextField 的对话框。用户应该在文本字段中写入一个布尔表达式,该列表包含可能在表达式中输入的所有变量的名称。因为希望用户在单击列表中的变量后继续输入表达式,所以程序调用 JTextField.requestFocus() 很有帮助。通过这种方式,您可以例如从列表中单击“pvalue”,然后键入“<0.05”,而无需单击中间的文本字段。
这一切在我的开发机器 (Linux) 上都运行良好,但我从 Mac 用户那里得到了一个错误报告,即单击列表实际上选择了文本字段中的所有文本,因此很容易意外覆盖之前输入的内容。
我怀疑这是 Mac 外观的问题,经过一番搜索后,似乎确实存在与此问题有关的 mac 外观的“Quaqua.TextComponent.autoSelect”属性:http://www.randelshofer.ch/quaqua/guide/jtextcomponent.html
我的一般问题是:
如果范围太广,对这些子问题的回答已经是一个很大的帮助:
我有大量的jbuttons,jtextfields,jlabels,jmenus,gui项目,一次设置一个背景颜色和前景色非常耗时.
我希望能够在我的项目中快速/简洁地为所有jmenus,jmenuitems,jtextfields,jbuttons等设置字体(前景)和背景颜色,而不必一次设置一个.
有没有什么技术可以更简洁地做到这一点,而不是一次做一个?
我正在尝试创建一个自定义单元格渲染器,它将在JTable的标题单元格中显示图像.我已经获得了使用Metal L&F的源代码,但我遇到了Nimbus的问题.在正常情况下,Nimbus显示图像就好了.但是,当表格排序时,Nimbus将绘制排序图标而不是我指定的图标.这与Metal L&F不同,因为它总是绘制我提供的图标.

有没有人知道有一种方法让Nimbus绘制图像,即使列是排序的?
我正在使用Java 6.29和Nimbus.我不能改变Java版本或L&F.
此外,我尝试做一些其他的解决方法,比如更改标签以使用HTML和img标签来显示图像,但这会产生奇怪的视觉效果.编辑文本和图像没有很好地对齐(即使img标签上有HTML对齐标签)这是一张图片,请注意Temp Hi列中的文本如何不对齐:

import java.awt.Component;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer;
public class ImageChangeDemo extends JFrame {
public static void main(String args[]) {
//comment out the code below to try in Metal L&F
try {
for(javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.
getInstalledLookAndFeels()) {
if("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
}
catch(Exception ex) {
ex.printStackTrace();
}
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new ImageChangeDemo().setVisible(true);
}
});
}
public …Run Code Online (Sandbox Code Playgroud) 我在java中的netbeans 7.2中创建了一个gui应用程序.我在JFrame那里创造了一个.在自动生成的代码中设置为nimbus外观.但我的框架看起来不像雨云.
所以我调试代码,发现nimbus在返回的数组中不可用getInstalledLookAndFeels().
那么我该怎么做才能安装灵气的外观和感觉呢?JDK 1.6用于编译代码.
我通过这样做来设定我的外观和感觉
private void setSubstanceSkin(String theme) {
try {
UIManager.setLookAndFeel(new SubstanceBusinessBlackSteelLookAndFeel());
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
} catch (Exception e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
但是我得到了这个堆栈跟踪:
Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.plaf.metal.MetalRootPaneUI cannot be cast to org.jvnet.substance.SubstanceRootPaneUI
at org.jvnet.substance.utils.SubstanceCoreUtilities.getTitlePane(SubstanceCoreUtilities.java:3590)
at org.jvnet.substance.title.ImageWrapperHeaderPainter.paintExtraBackground(ImageWrapperHeaderPainter.java:172)
at org.jvnet.substance.SubstanceFillBackgroundDelegate.update(SubstanceFillBackgroundDelegate.java:198)
at org.jvnet.substance.SubstanceMenuBarUI.__org__jvnet__substance__SubstanceMenuBarUI__container__update(SubstanceMenuBarUI.java:251)
at org.jvnet.substance.SubstanceMenuBarUI.update(SubstanceMenuBarUI.java)
at javax.swing.JComponent.paintComponent(JComponent.java:778)
at javax.swing.JComponent.paint(JComponent.java:1054)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paint(JComponent.java:1063)
at javax.swing.JLayeredPane.paint(JLayeredPane.java:585)
at javax.swing.JComponent.paintChildren(JComponent.java:887)
at javax.swing.JComponent.paintToOffscreen(JComponent.java:5228)
at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1482)
at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1413)
at javax.swing.RepaintManager.paint(RepaintManager.java:1206)
at javax.swing.JComponent.paint(JComponent.java:1040)
at java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39)
at sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:78)
at sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:115)
at java.awt.Container.paint(Container.java:1967)
at java.awt.Window.paint(Window.java:3877)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:781)
at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:728)
at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:677) …Run Code Online (Sandbox Code Playgroud) 我是Java中使用Look and Feels的新手.我试图将Seaglass的外观和感觉添加到我正在处理的java应用程序中,但我似乎无法弄清楚如何使用它.我发现其他人使用它并且也有问题,尽管他们说已经修复了.
这是我的Java代码(我正在使用Netbeans 8.1 Beta):
package pamsorganizer;
import javax.swing.*;
import java.awt.*;
import javax.swing.UIManager;
public class MainProgram extends JFrame {
/**
* Creates the Main Form for the General Program
*/
public MainProgram() {
initComponents();
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() …Run Code Online (Sandbox Code Playgroud) 我想将 Swing 与 Java2D OpenGL 图形加速一起使用。然而,它不起作用。
我自己回答了这个问题,因为我寻找解决方案很长一段时间。
这是我的代码:
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
public class OpenGLTest {
public static void main(String[] args) throws ClassNotFoundException,
InstantiationException, IllegalAccessException,
UnsupportedLookAndFeelException {
// set system look and feel
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
// activate opengl
System.setProperty("sun.java2d.opengl", "true");
// create and show the GUI in the event dispatch thread
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
createAndShowGUI();
}
});
}
private static void createAndShowGUI() {
JFrame frame = new JFrame();
frame.setTitle("OpenGL Test");
frame.setSize(400, 300); …Run Code Online (Sandbox Code Playgroud) 我在项目中使用Nimbus Look and Feel.但是,尽管每个GUI JComponent都具有Nimbus的外观,但JFrame始终具有Windows外观.
JFrame如何拥有Nimbus外观和感觉?
编辑:操作系统:Windows XP
look-and-feel ×10
java ×9
swing ×8
nimbus ×3
blackberry ×1
components ×1
dialog ×1
icons ×1
invokelater ×1
jframe ×1
jtable ×1
jtextfield ×1
macos ×1
office-2007 ×1
opengl ×1
substance ×1
uimanager ×1