如何在 swing 应用程序中使用 FlatLaf 库?
How to use FlatLaf library in swing application?
这是我的简单应用程序:
public class MainFrame extends JFrame{
private Dimension size;
private JPanel buttonPanel;
private JButton button;
public MainFrame() throws ClassNotFoundException{
super("Applikacja1");
try {
UIManager.setLookAndFeel("com.formdev.flatlaf.FlatDarkLaf");
} catch (Exception ex) {
}
JFrame.setDefaultLookAndFeelDecorated(true);
size = new Dimension(350, 530);
setPreferredSize(size);
setMinimumSize(size);
setLocationRelativeTo(null);
setLayout(new BorderLayout());
pack();
//setting button
button = new JButton("Start programu");
button.setVisible(true);
this.add(button);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setResizable(false);
}
}
我需要做什么才能将此程序的外观更改为 FlatLaf 并使用他们的库?
我需要从互联网上下载什么?我尝试下载整个代码(从这里 https://www.formdev.com/flatlaf/),然后将其作为库添加到 netbeans,但没有成功。有人可以做一些完全新手的教程吗?
我不是这方面的专家,但这里有一些说明:
选项 1:手动下载文件并安装它们
您可以下载并安装以下文件:
- 二进制文件:这是Java虚拟机执行的字节码。在您的案例中,此文件名为 flatlaf-1.1.jar。这是迄今为止的最新版本。这些文件通常(如本例)仅包含库名称和版本。如果您 select 此选项,这是能够使用该库所需的绝对强制文件。
- JavaDoc 文件:该文件包含每个 class、方法、字段以及开发人员提供的任何文档的文档注释他们的代码。在您的案例中,此文件称为 flatlaf-1.1-javadoc.jar。通常,开发人员会提供在线文档,甚至可以下载 HTML 格式,但预先下载此文件,您可以随时在 IDE(即项目编辑器,如 NetBeans 或 IntelliJ)中查看文档) 即使在离线时。所以这个文件是一个很好的文件,但不是绝对的强制文件。
- Sources 文件:这是包含每个 class、方法、字段和一般库代码的源代码的文件,捆绑在一个 jar 文件中.在您的案例中,此文件名为 flatlaf-1.1-sources.jar。如果将您的项目与此源文件连接,您将受益于查看库实现的实际代码(不是 Java 二进制代码,而是 Java 纯文本源代码) in. 这个文件又不是绝对强制性的,但是如果文档中的内容不够清楚(或缺失),这是一个很好的参考。
到目前为止我提到的所有文件都可以在站点引导您找到它们的地方找到,例如您想要的库的最新版本文件可以一起找到 here. You can find this link as follows: first navigate to the FlatLaf's home page, then scroll a bit down on this page to find the section Download which gives you another link, the one in the Maven repository (specifically this 一个)。在那里,您可以找到有关如何 link 将库添加到您的项目的说明,当然,还可以下载必要的文件。在这种情况下,右上角有两个按钮,一个名为 Browse,另一个名为 Downloads。 Downloads 按钮只是简单地下拉一个包含您可以下载的所有资产(即文件)的列表。 Browse 按钮将您导航到服务器目录,您可以在其中找到 Downloads 按钮下拉列表中显示的所有文件,因此让我们去那里看看所有可用的文件...
如果你去了那里,你可以看到更多的文件。它们中的大多数对于安全性很重要,这是我尚未涵盖的内容。验证您下载的文件的完整性始终很重要,因为如果不这样做,就会存在安全风险。例如,您不希望下载的库是钓鱼网站提供的恶意副本。因此,您需要将它们与您正在访问的 link 一起进行验证。诚然,我在下载库时并不经常这样做,但我觉得,我对它的疏忽并没有使它成为我不应该提及的事情。所以我警告你:注意你下载的是什么。
让我们休息一下,看看所有这些文件(最有可能)是什么:
- jar 文件是使事情正常运行所需的主要文件。它们就是我上面提到的文件。
- pom 文件我认为是 Apache Maven 构建系统的设置文件。
- asc 文件是 PGP 签名。
- md5、sha1、sha256 和 sha512 是哈希值。
如果你很熟悉,你就会知道我在说什么。因此,您应该退后一步,验证刚刚下载的主要 (jar) 文件的签名和哈希值。
我认为验证完整性的最佳方法是简单地下载源代码,自己验证并通过提供的资源,然后构建表单源(如果您信任您的编译器)并安装。但这不是那么简单,也不是节省时间。我提供的所有这些 link 都可能包含恶意内容:我只是还不知道,因为我还没有花必要的时间来验证。因此,正如他们通常所说的那样,请自行承担风险。另请注意,我通常在下载 jar 文件时收到警告,因为如消息所述,“它们不受信任”。继续...
选项 2:与构建系统同步
如果您有一个系统来自动执行项目的构建过程(而不是使用 javac
命令行实用程序编译项目的每个 Java 源代码文件),例如 Apache Maven, Gradle, Apache Ant 和其他人,那么你可以选择在你的项目中包含所谓的库依赖,并让构建系统同步(即下载库并将其包含在构建过程中)。这至少是我有点熟悉的 Gradle 发生的情况。至于其他的我不是很熟悉,这里就不多说了。请注意,有一些关于如何使用它们的说明、教程和文档,可以直接通过命令行,也可以通过您的 IDE。然后,据我所知,库开发人员通常会让您知道如何在构建工具的设置文件中包含相应的依赖项。
选项 3:从源代码构建,然后安装
您可以从 GitHub 或有时通过 FTP 站点或通常从提供相应内容的某种在线服务器下载源代码(至少是该软件的源代码),并且建造它。您想要的库的源代码位于 here,根据问题判断,您可能已经发现。
正在安装
现在您已经下载(并验证)或构建了您需要的内容,实际安装如下...我将演示 NetBeans 8.2 IDE 和 Java 8(FlatLaf 的最低支持版本),但我猜每个 IDE 和版本的步骤通常是相同的。如果不是,您可以更具体地说明您的环境,然后我们再谈。
- 在您的项目中包含已编译的库 (flatlaf-1.1.jar),如下所示:右键单击 Projects[ 中的项目=91=] NetBeans 选项卡(通常在 IDE 的左侧)并转到最底部名为 Properties 的按钮并单击它。在弹出的对话框中,从 Categories 部分到对话框左侧,select 名为 Libraries 的类别。 Select 从中间开始 Compile 选项卡,然后单击 Add JAR/Folder 到右侧。然后转到 select 您的库文件并单击 打开 以包含它。而已。您现在基本上已准备好开始将 FlatLaf 的 classes 添加到您的项目中,因为正如我上面所说,这个文件是绝对必需的文件。
- 接下来,JavaDoc 文件。在项目中创建一个 class 并通过导入库中的 class 并声明一个引用,例如导入的 class。在class名字上按CTRL+SPACE...弹出一个对话框说没有JavaDoc 已附加,并为您提供了一个可以单击的位置,上面写着“Attach JavaDoc...”或类似的内容。单击它,然后单击 添加 ZIP/Folder 按钮,select 添加 JavaDoc jar 文件并确认您的选择。现在准备好了。
- 最后是 Sources 的文件。当您在代码中准备好 class 引用时,按住 CTRL 键左键单击 class 名称。这将使您获得源代码。你会看到只显示了方法名称,每个方法主体都写着 Compiled Code,如果你 unfold/expand 它,那么你会在注释中看到字节码。这意味着没有附加源。您看到的是编译后的 jar 文件的字节码。在编辑器的右上角,现在有一个按钮,上面写着 Attach Sources...。单击它,然后会弹出一个对话框。单击按钮 添加 Zip/Folder...,导航并 select flatlaf-1.1-sources.jar文件,您现在可以看到库的源代码。
构建示例应用程序
您可以参考 GitHub 页面,或指导您完成的项目主页。基本上你可以尝试以下方法:
import com.formdev.flatlaf.FlatDarkLaf;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class Main {
private static void createAndShowGUI() {
FlatDarkLaf.setup(); //Must be called first of all Swing code as this sets the look and feel to FlatDark.
final JPanel panel = new JPanel(); //FlowLayout.
panel.add(new JButton("FlatDarkLaf button!"));
panel.add(new JTextField("FlatDarkLaf text field!"));
final JFrame frame = new JFrame("FlatDarkLaf test.");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(panel);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void main(final String[] args) {
SwingUtilities.invokeLater(Main::createAndShowGUI);
}
}
最后说明:您必须在创建任何 Swing 组件之前应用 LAF。在您问题的代码中,您似乎不是,因为您首先创建 JFrame
(通过构造函数的 super
调用),然后以同样不推荐的方式安装 LAF。
当您在 任何 Swing 代码和 not 在构造函数中。请注意,您已安装 Java 8 或更高版本并且类路径中有 FlatLaf jar。
您的代码已更正:
import java.awt.*;
import javax.swing.*;
public class MainFrame extends JFrame{
private Dimension size;
private JPanel buttonPanel;
private JButton button;
public MainFrame() {
super("Applikacja1");
// try {
// UIManager.setLookAndFeel("com.formdev.flatlaf.FlatDarkLaf");
// } catch (Exception ex) {
//
// }
JFrame.setDefaultLookAndFeelDecorated(true);
size = new Dimension(350, 530);
setPreferredSize(size);
setMinimumSize(size);
setLocationRelativeTo(null);
setLayout(new BorderLayout());
pack();
//setting button
button = new JButton("Start programu");
button.setVisible(true);
this.add(button);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setResizable(false);
}
public static void main(String[] args) {
try {
UIManager.setLookAndFeel("com.formdev.flatlaf.FlatDarkLaf");
} catch (Exception ex) {
System.err.println("Failed to initialize LaF");
}
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run() {
new MainFrame();
}
});
}
}
代码中仍然存在一些小问题,但无论如何都会 运行 符合预期。
这是我的简单应用程序:
public class MainFrame extends JFrame{
private Dimension size;
private JPanel buttonPanel;
private JButton button;
public MainFrame() throws ClassNotFoundException{
super("Applikacja1");
try {
UIManager.setLookAndFeel("com.formdev.flatlaf.FlatDarkLaf");
} catch (Exception ex) {
}
JFrame.setDefaultLookAndFeelDecorated(true);
size = new Dimension(350, 530);
setPreferredSize(size);
setMinimumSize(size);
setLocationRelativeTo(null);
setLayout(new BorderLayout());
pack();
//setting button
button = new JButton("Start programu");
button.setVisible(true);
this.add(button);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setResizable(false);
}
}
我需要做什么才能将此程序的外观更改为 FlatLaf 并使用他们的库? 我需要从互联网上下载什么?我尝试下载整个代码(从这里 https://www.formdev.com/flatlaf/),然后将其作为库添加到 netbeans,但没有成功。有人可以做一些完全新手的教程吗?
我不是这方面的专家,但这里有一些说明:
选项 1:手动下载文件并安装它们
您可以下载并安装以下文件:
- 二进制文件:这是Java虚拟机执行的字节码。在您的案例中,此文件名为 flatlaf-1.1.jar。这是迄今为止的最新版本。这些文件通常(如本例)仅包含库名称和版本。如果您 select 此选项,这是能够使用该库所需的绝对强制文件。
- JavaDoc 文件:该文件包含每个 class、方法、字段以及开发人员提供的任何文档的文档注释他们的代码。在您的案例中,此文件称为 flatlaf-1.1-javadoc.jar。通常,开发人员会提供在线文档,甚至可以下载 HTML 格式,但预先下载此文件,您可以随时在 IDE(即项目编辑器,如 NetBeans 或 IntelliJ)中查看文档) 即使在离线时。所以这个文件是一个很好的文件,但不是绝对的强制文件。
- Sources 文件:这是包含每个 class、方法、字段和一般库代码的源代码的文件,捆绑在一个 jar 文件中.在您的案例中,此文件名为 flatlaf-1.1-sources.jar。如果将您的项目与此源文件连接,您将受益于查看库实现的实际代码(不是 Java 二进制代码,而是 Java 纯文本源代码) in. 这个文件又不是绝对强制性的,但是如果文档中的内容不够清楚(或缺失),这是一个很好的参考。
到目前为止我提到的所有文件都可以在站点引导您找到它们的地方找到,例如您想要的库的最新版本文件可以一起找到 here. You can find this link as follows: first navigate to the FlatLaf's home page, then scroll a bit down on this page to find the section Download which gives you another link, the one in the Maven repository (specifically this 一个)。在那里,您可以找到有关如何 link 将库添加到您的项目的说明,当然,还可以下载必要的文件。在这种情况下,右上角有两个按钮,一个名为 Browse,另一个名为 Downloads。 Downloads 按钮只是简单地下拉一个包含您可以下载的所有资产(即文件)的列表。 Browse 按钮将您导航到服务器目录,您可以在其中找到 Downloads 按钮下拉列表中显示的所有文件,因此让我们去那里看看所有可用的文件...
如果你去了那里,你可以看到更多的文件。它们中的大多数对于安全性很重要,这是我尚未涵盖的内容。验证您下载的文件的完整性始终很重要,因为如果不这样做,就会存在安全风险。例如,您不希望下载的库是钓鱼网站提供的恶意副本。因此,您需要将它们与您正在访问的 link 一起进行验证。诚然,我在下载库时并不经常这样做,但我觉得,我对它的疏忽并没有使它成为我不应该提及的事情。所以我警告你:注意你下载的是什么。
让我们休息一下,看看所有这些文件(最有可能)是什么:
- jar 文件是使事情正常运行所需的主要文件。它们就是我上面提到的文件。
- pom 文件我认为是 Apache Maven 构建系统的设置文件。
- asc 文件是 PGP 签名。
- md5、sha1、sha256 和 sha512 是哈希值。 如果你很熟悉,你就会知道我在说什么。因此,您应该退后一步,验证刚刚下载的主要 (jar) 文件的签名和哈希值。
我认为验证完整性的最佳方法是简单地下载源代码,自己验证并通过提供的资源,然后构建表单源(如果您信任您的编译器)并安装。但这不是那么简单,也不是节省时间。我提供的所有这些 link 都可能包含恶意内容:我只是还不知道,因为我还没有花必要的时间来验证。因此,正如他们通常所说的那样,请自行承担风险。另请注意,我通常在下载 jar 文件时收到警告,因为如消息所述,“它们不受信任”。继续...
选项 2:与构建系统同步
如果您有一个系统来自动执行项目的构建过程(而不是使用 javac
命令行实用程序编译项目的每个 Java 源代码文件),例如 Apache Maven, Gradle, Apache Ant 和其他人,那么你可以选择在你的项目中包含所谓的库依赖,并让构建系统同步(即下载库并将其包含在构建过程中)。这至少是我有点熟悉的 Gradle 发生的情况。至于其他的我不是很熟悉,这里就不多说了。请注意,有一些关于如何使用它们的说明、教程和文档,可以直接通过命令行,也可以通过您的 IDE。然后,据我所知,库开发人员通常会让您知道如何在构建工具的设置文件中包含相应的依赖项。
选项 3:从源代码构建,然后安装
您可以从 GitHub 或有时通过 FTP 站点或通常从提供相应内容的某种在线服务器下载源代码(至少是该软件的源代码),并且建造它。您想要的库的源代码位于 here,根据问题判断,您可能已经发现。
正在安装
现在您已经下载(并验证)或构建了您需要的内容,实际安装如下...我将演示 NetBeans 8.2 IDE 和 Java 8(FlatLaf 的最低支持版本),但我猜每个 IDE 和版本的步骤通常是相同的。如果不是,您可以更具体地说明您的环境,然后我们再谈。
- 在您的项目中包含已编译的库 (flatlaf-1.1.jar),如下所示:右键单击 Projects[ 中的项目=91=] NetBeans 选项卡(通常在 IDE 的左侧)并转到最底部名为 Properties 的按钮并单击它。在弹出的对话框中,从 Categories 部分到对话框左侧,select 名为 Libraries 的类别。 Select 从中间开始 Compile 选项卡,然后单击 Add JAR/Folder 到右侧。然后转到 select 您的库文件并单击 打开 以包含它。而已。您现在基本上已准备好开始将 FlatLaf 的 classes 添加到您的项目中,因为正如我上面所说,这个文件是绝对必需的文件。
- 接下来,JavaDoc 文件。在项目中创建一个 class 并通过导入库中的 class 并声明一个引用,例如导入的 class。在class名字上按CTRL+SPACE...弹出一个对话框说没有JavaDoc 已附加,并为您提供了一个可以单击的位置,上面写着“Attach JavaDoc...”或类似的内容。单击它,然后单击 添加 ZIP/Folder 按钮,select 添加 JavaDoc jar 文件并确认您的选择。现在准备好了。
- 最后是 Sources 的文件。当您在代码中准备好 class 引用时,按住 CTRL 键左键单击 class 名称。这将使您获得源代码。你会看到只显示了方法名称,每个方法主体都写着 Compiled Code,如果你 unfold/expand 它,那么你会在注释中看到字节码。这意味着没有附加源。您看到的是编译后的 jar 文件的字节码。在编辑器的右上角,现在有一个按钮,上面写着 Attach Sources...。单击它,然后会弹出一个对话框。单击按钮 添加 Zip/Folder...,导航并 select flatlaf-1.1-sources.jar文件,您现在可以看到库的源代码。
构建示例应用程序
您可以参考 GitHub 页面,或指导您完成的项目主页。基本上你可以尝试以下方法:
import com.formdev.flatlaf.FlatDarkLaf;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingUtilities;
public class Main {
private static void createAndShowGUI() {
FlatDarkLaf.setup(); //Must be called first of all Swing code as this sets the look and feel to FlatDark.
final JPanel panel = new JPanel(); //FlowLayout.
panel.add(new JButton("FlatDarkLaf button!"));
panel.add(new JTextField("FlatDarkLaf text field!"));
final JFrame frame = new JFrame("FlatDarkLaf test.");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().add(panel);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void main(final String[] args) {
SwingUtilities.invokeLater(Main::createAndShowGUI);
}
}
最后说明:您必须在创建任何 Swing 组件之前应用 LAF。在您问题的代码中,您似乎不是,因为您首先创建 JFrame
(通过构造函数的 super
调用),然后以同样不推荐的方式安装 LAF。
当您在 任何 Swing 代码和 not 在构造函数中。请注意,您已安装 Java 8 或更高版本并且类路径中有 FlatLaf jar。
您的代码已更正:
import java.awt.*;
import javax.swing.*;
public class MainFrame extends JFrame{
private Dimension size;
private JPanel buttonPanel;
private JButton button;
public MainFrame() {
super("Applikacja1");
// try {
// UIManager.setLookAndFeel("com.formdev.flatlaf.FlatDarkLaf");
// } catch (Exception ex) {
//
// }
JFrame.setDefaultLookAndFeelDecorated(true);
size = new Dimension(350, 530);
setPreferredSize(size);
setMinimumSize(size);
setLocationRelativeTo(null);
setLayout(new BorderLayout());
pack();
//setting button
button = new JButton("Start programu");
button.setVisible(true);
this.add(button);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
setResizable(false);
}
public static void main(String[] args) {
try {
UIManager.setLookAndFeel("com.formdev.flatlaf.FlatDarkLaf");
} catch (Exception ex) {
System.err.println("Failed to initialize LaF");
}
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run() {
new MainFrame();
}
});
}
}
代码中仍然存在一些小问题,但无论如何都会 运行 符合预期。