Darklaf - A themeable swing Look and Feel based on Darcula-Laf
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

102 lines
4.8 KiB

5 years ago
# Darklaf - A Darcula Look and Feel
5 years ago
[![Maven Central](https://img.shields.io/maven-central/v/com.github.weisj/darklaf.svg?label=Maven%20Central)](https://search.maven.org/search?q=g:%22com.github.weisj%22%20AND%20a:%22darklaf%22)
5 years ago
This project is based on the [darcula](https://github.com/bulenkov/Darcula) look and feel for Swing.
5 years ago
# Screenshots
5 years ago
![Darcula Theme](https://github.com/weisJ/darklaf/blob/master/img/file_chooser_darcula.png) | ![IntelliJ Theme](https://github.com/weisJ/darklaf/blob/master/img/file_chooser_intellij.png)
:-------------------------:|:-------------------------:
Darcula Theme | IntelliJ Theme
![Solarized Dark Theme](https://github.com/weisJ/darklaf/blob/master/img/file_chooser_solarized_dark.png) | ![Solarized Light Theme](https://github.com/weisJ/darklaf/blob/master/img/file_chooser_solarized_light.png)
:-------------------------:|:-------------------------:
5 years ago
Solarized Dark Theme | Solarized Light Theme
5 years ago
5 years ago
# Usage & [Features](https://github.com/weisJ/darklaf/wiki/Features)
5 years ago
The LaF is compatible with Java >=1.8 (you need >=1.9 to get proper scaling).
5 years ago
You can either use the current build from [releases](https://github.com/weisJ/darklaf/releases) or the the [bin folder](https://github.com/weisJ/darklaf/tree/master/bin). These binaries already include a stripped down version of all dependecies.
5 years ago
A list of all features can be found [here](https://github.com/weisJ/darklaf/wiki/Features).
5 years ago
This project is available on Maven Central:
5 years ago
### Maven
5 years ago
````xml
<dependency>
<groupId>com.github.weisj</groupId>
<artifactId>darklaf</artifactId>
<version>1.3.2.0</version>
5 years ago
</dependency>
````
5 years ago
### Gradle
5 years ago
````
implementation 'com.github.weisj:darklaf:1.3.2.0'
5 years ago
````
5 years ago
## Installation
5 years ago
The LookAndFeel can be easily installed using the 'LafManager'
````java
5 years ago
LafManager.install(); //For default theme (IntelliJ)
LafManager.install(new DarculaTheme()); //Specify the used theme.
5 years ago
````
5 years ago
or by using the UIManager
````java
LafManager.setTheme(new DarculaTheme());
UIManager.setLookAndFeel(DarkLaf.class.getCanonicalName());
````
5 years ago
## Example
````java
5 years ago
import com.github.weisj.darklaf.LafManager;
5 years ago
import javax.swing.*;
import java.awt.*;
public class DarklafDemo {
public static void main(final String[] args) {
5 years ago
SwingUtilities.invokeLater(() -> {
5 years ago
LafManager.install();
5 years ago
5 years ago
JFrame frame = new JFrame("Darklaf - A themeable LaF for Swing");
5 years ago
frame.setSize(600, 400);
JButton button = new JButton("Click here!");
JPanel content = new JPanel();
content.add(button);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setContentPane(content);
frame.setVisible(true);
});
}
}
````
All custom component-variants and settings are customizable by setting the appropriate client
property of the component.
5 years ago
They can be found [here](https://github.com/weisJ/darklaf/wiki/Features#alternative-visualsbehaviour-for-components).
5 years ago
5 years ago
This LookAndFeel supports custom window decorations (only Windows at this point). In contrast to most other LaFs the native window behaviour is not compromised giving a seamless experience that still looks native.
5 years ago
# Build
To build the project replace the ````build.gradle```` script with the one
fitting your platform i.e.
5 years ago
- You only have a x86 toolchain installation -> ````build_x86.gradle````
- You only have a x64 toolchain installation -> ````build_x64.gradle````
- You have a 86x_64x_multilib toolchain installation -> ````build.gradle````
5 years ago
# Contribute
Here is a list of things that currently are not finished or need refinement. This list is a work in progress and being updated regulary. If you find any problems with the LaF feel free to submit an issue:
- [Native window decorations on Linux and MacOS.](https://github.com/weisJ/darklaf/issues/2)
5 years ago
* See [jniplatform/cpp](https://github.com/weisJ/darklaf/tree/master/src/jniplatform/cpp) for the windows implementation.
- [Adjustment of platform specific properties](https://github.com/weisJ/darklaf/issues/2)
* See the [properties folder](https://github.com/weisJ/darklaf/tree/master/src/main/resources/com/github/weisj/darklaf/properties) especially the plaform folder.
5 years ago
* See todo in [DarkLaf](https://github.com/weisJ/darklaf/blob/master/src/main/java/com/github/weisj/darklaf/DarkLaf.java)
5 years ago
- [Custom TabComponents may be visible during DnD with JTabbedPane.](https://github.com/weisJ/darklaf/issues/7)
5 years ago
- Right to left layout support in [DarkTitlePane](https://github.com/weisJ/darklaf/blob/master/src/main/java/com/github/weisj/darklaf/ui/rootpane/DarkTitlePane.java).
- Examine if Todo branch in [TabbedPaneUtil](https://github.com/weisJ/darklaf/blob/master/src/main/java/com/github/weisj/darklaf/ui/tabbedpane/TabbedPaneUtil.java) needs something to be done about.
- [Arrow button cycle support for JComboBox.](https://github.com/weisJ/darklaf/issues/10)