Windows LookAndFeel gốc trong Java 6 dường như không đúng kích thước một số phông chữ.Tại sao Windows LookAndFeel tạo phông chữ quá nhỏ?
chương trình thử nghiệm:
import java.awt.*;
import java.awt.event.KeyEvent;
import javax.swing.*;
public class Test {
public static void main(String[] arg) throws Exception {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (Exception e) {
e.printStackTrace();
}
final JMenuBar mb = new JMenuBar();
final JMenu file = new JMenu("File");
file.setMnemonic(KeyEvent.VK_F);
mb.add(file);
final JToolBar toolbar = new JToolBar();
final JButton button = new JButton("Button");
toolbar.add(button);
final JLabel label = new JLabel("Basic Colors");
final JPanel panel = new JPanel(new BorderLayout());
panel.add(toolbar, BorderLayout.PAGE_START);
panel.add(label, BorderLayout.CENTER);
final JFrame frame = new JFrame();
frame.setJMenuBar(mb);
frame.add(panel);
frame.setTitle("Test");
frame.setSize(400,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
});
}
}
Output, so với ứng dụng gốc Windows trên Vista:
Trong khi các văn bản trong thanh kiểm tra trình đơn ứng dụng có kích thước chính xác, phần còn lại của văn bản nhỏ hơn trong ứng dụng gốc bên cạnh văn bản. Phóng to, bạn có thể thấy rằng văn bản trong ứng dụng thử nghiệm JLabel là 1px ngắn hơn trong ứng dụng bản địa:
Đây có phải là một lỗi trong Windows LAF, hay chúng ta đang lạm dụng nó? Nếu đó là lỗi, có cách giải quyết nào không?
Với tôi, có vẻ như Swing L & F sử dụng phông chữ khác. –
+1 Câu hỏi được chuẩn bị tốt. –