【问题标题】:The JOptionPane in eclipse is extremely tinyeclipse 中的 JOptionPane 非常小
【发布时间】:2018-11-08 14:49:32
【问题描述】:

我正在使用 Eclipse Photon 2018 并使用 Java 制作一个简单的项目。 我开始使用 JOptionPane 并且出于某种原因 - 尺寸很小,如下图所示:

我的代码:

Main.java:

public class Main {

    public static void main(String[] args) {
        Messageable ui = new GrapghicalUI();
        String res = ui.getString("what is your name? ");
        ui.showMessage("hi" +res);
    }

}

ConsuleUI.java:

import java.util.Scanner;

public class ConsoleUI implements Messageable{
    private Scanner s = new Scanner(System.in);

    @Override
    public void showMessage(String str) {
        System.out.println(str);
    }

    @Override
    public String getString(String msg) {
        System.out.println(msg);
        return s.next();
    }

}

GraphicalUI.java:

import javax.swing.JOptionPane;

public class GrapghicalUI implements Messageable {

    @Override
    public void showMessage(String str) {
        JOptionPane.showMessageDialog(null, str);
    }

    @Override
    public String getString(String msg) {
        return JOptionPane.showInputDialog(msg);
    }

}

可留言:

public interface Messageable {
    void showMessage(String str);
    String getString(String msg);
}

【问题讨论】:

  • 为什么有4个类来显示一个简单的JOptionPane?当解决问题时学会简化问题。这样您就知道问题是否与您的整体设计或其他问题有关。因此,请尝试仅从 main() 方法显示 JOptionPane 以查看您是否有同样的问题。此外,应在Event Dispatch Thread (EDT) 上创建和修改所有 Swing 组件。所以你需要使用 SwingUtilities.invokeLater()。阅读 Concurrency 上的 Swing 教程部分了解更多信息。

标签: java eclipse swing joptionpane


【解决方案1】:

这很可能是 Windows 应用程序在高 DPI 显示器上缩放的问题。通常可以通过在可执行文件属性的兼容性选项卡下启用“覆盖高 DPI 缩放行为”来修复它。

此问题已发布在 Microsoft 支持上,可以在 here 找到

由于您看到的对话框来自与 IDE 本身不同的程序,因此缩放将不匹配,因为它与它无关。但是,设置上述选项很可能不会很有帮助,因为每次构建/编译时都会替换可执行文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多