gpt4 book ai didi

java - JComponents 的某些部分与 Ubuntu 不兼容?

转载 作者:太空宇宙 更新时间:2023-11-04 11:01:10 25 4
gpt4 key购买 nike

我有一个程序将计算结果输出到一个 JFrame 中,该 JFrame 包含一个 JPanel(用于可扩展性),其中包含一个 JLabel,它显示所述输出(它是一个字符串)。

我发现 JLabel 的默认字体相当小且难以阅读,因此增加了字体大小并将其替换为 Windows 特定字体,但并没有多想,因为我检查了一种不适合的字体存在,并注意到即使字体不存在,该程序也能正常工作。 (在 Windows 7 和 8 上)

但是,当在 Ubuntu 上运行时,结果是一个最小尺寸的 JFrame。

smallllll

所以现在我想知道这是否是 JVM 上某些不兼容的示例,或者运行它的 Ubuntu 副本有问题。

如果这是一个 JVM 问题,下面的代码应该会在 Ubuntu(或者一般的 Linux)上复制这个问题。

import java.awt.BorderLayout;
import java.awt.Font;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;


public class Main {
public Main(){
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel lbl = new JLabel("SOME TEXT");
lbl.setFont(new Font("font that doesnt exist", Font.PLAIN, 20));
JPanel pnl = new JPanel();
pnl.add(lbl);
frame.add(pnl, BorderLayout.CENTER);
frame.setVisible(true);
frame.pack();
frame.setLocationRelativeTo(null);
}

public static void main (String[] args)
{
Main main = new Main();
}
}

PS Ubuntu 电脑不是我的,所以我不能完全按照自己的意愿测试

最佳答案

在 Ubuntu 14、Java 7 上测试,字体替换似乎以通常的方式工作。请注意需要调用 pack()then setVisible(),以及在 EDT 上启动 UI .

image

import java.awt.Font;
import java.awt.GridLayout;
import java.io.File;
import javax.swing.*;

public class TestFrame extends JFrame {

public TestFrame() {
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new GridLayout(0, 1));
JLabel label1 = new JLabel("Some big, bold, serif text.");
label1.setFont(new Font(Font.SERIF, Font.BOLD, 24));
this.add(label1);
JLabel label2 = new JLabel("Some big, bold, default text.");
label2.setFont(new Font("42", Font.BOLD, 24));
this.add(label2);
this.pack();
this.setLocationRelativeTo(null);
}

public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {

@Override
public void run() {
new TestFrame().setVisible(true); }
});
}
}

关于java - JComponents 的某些部分与 Ubuntu 不兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27010518/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com