簡體   English   中英

Swing 中的 java.lang.UnsatisfiedLinkError

[英]java.lang.UnsatisfiedLinkError in Swing

我在 java swing 做一個簡單的項目,只是為了打發時間。 當我嘗試啟動應用程序時,它給了我這個錯誤:

   Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
Exception in thread "main" java.lang.UnsatisfiedLinkError: D:\Java\bin\awt.dll: Routine di inizializzazione della libreria di collegamento dinamico (DLL) non riuscita
    at java.base/jdk.internal.loader.NativeLibraries.load(Native Method)
    at java.base/jdk.internal.loader.NativeLibraries$NativeLibraryImpl.open(NativeLibraries.java:383)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:227)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:169)
    at java.base/jdk.internal.loader.NativeLibraries.findFromPaths(NativeLibraries.java:310)
    at java.base/jdk.internal.loader.NativeLibraries.loadLibrary(NativeLibraries.java:280)
    at java.base/java.lang.ClassLoader.loadLibrary(ClassLoader.java:2416)
    at java.base/java.lang.Runtime.loadLibrary0(Runtime.java:809)
    at java.base/java.lang.System.loadLibrary(System.java:1893)
    at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:1380)
    at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:1378)
    at java.base/java.security.AccessController.doPrivileged(AccessController.java:312)
    at java.desktop/java.awt.Toolkit.loadLibraries(Toolkit.java:1377)
    at java.desktop/java.awt.Toolkit.<clinit>(Toolkit.java:1410)
    at java.desktop/java.awt.Component.<clinit>(Component.java:622)
    at com.company.Main.main(Main.java:6)

這是代碼(我有3個課程):

這是 class 頁面:

package com.company;

import javax.swing.*;
import java.awt.*;

public class Page extends JFrame {
    Header header = new Header();
    public Page(){
        super("FW Ultra");
        this.setSize(1000, 700);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.getContentPane().setLayout(new FlowLayout());

        this.add(header);

        this.setVisible(true);
    }
}

這是 class header:

package com.company;

import javax.swing.*;
import java.awt.*;

public class Header extends JPanel {
    public Header(){
        super();
        this.setLayout(new BorderLayout());
        add(new JLabel("FVU | Film Viewer Ultra"),  BorderLayout.WEST);
        add(new JLabel("Version 1.0"),  BorderLayout.EAST);
    }
}

這是主要的

package com.company;

public class Main {

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

PLZ幫忙看看

我對您的代碼進行了一些更改,並提出了這個 GUI。 我將 GUI 的大小減小了一半,以便更好地適應答案。

固件超 GUI

我更改了您所有三個課程中的一些代碼。 我將您的課程設置為內部課程,因此我可以將它們作為一個塊發布。 你應該把它們分開。

我通過調用SwingUtilities invokeLater方法啟動了您的 Swing GUI。 此方法確保在Event Dispatch Thread上創建和執行 Swing 組件。

這是完整的可運行代碼。

import java.awt.BorderLayout;
import java.awt.FlowLayout;

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

public class FileViewerMain {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                new FileViewerMain().new Page();
            }
        });
    }
    
    public class Page extends JFrame {
        Header header = new Header();
        public Page(){
            super("FW Ultra");
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.add(new Header(), BorderLayout.BEFORE_FIRST_LINE);
            this.setSize(500, 350);
            this.setVisible(true);
        }
    }
    
    public class Header extends JPanel {
        public Header(){
            super();
            this.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
            this.setLayout(new BorderLayout());
            add(new JLabel("FVU | Film Viewer Ultra"),  BorderLayout.WEST);
            add(new JLabel("Version 1.0"),  BorderLayout.EAST);
        }
    }

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM