About JSplitButton
A Split Button control for Java Swing.
A simple implementation of the split button control for Java Swing. This control raises two events:
- buttonClicked
- splitButtonClicked
The buttonClicked event is raised when the main, or left, part of the button is clicked, which will not trigger the popup menu. The splitButtonClicked event is raised when the split, or right, part of the button is clicked and displays a popup menu.
To handle these events you need a listener that implements:
ButtonClickedActionListener
to handle the buttonClicked eventSplitButtonClickedActionListener
to handle the splitButtonClicked event
See also http://naveedmurtuza.blogspot.ch/2010/11/jsplitbutton.html
Screenshots
Using the Control
//first instantiate the control
JSplitButton splitButton = new JSplitButton();
//register for button listener
splitButton.addButtonClickedActionListener((ActionEvent e) -> {
System.out.println("Button Clicked");
});
//register for split button listener
splitButton.addSplitButtonClickedActionListener((ActionEvent e) -> {
System.out.println("Split Part Clicked");
});
//add popup menu
splitButton.add(popupMenu);
//add this control to panel
panel.add(splitButton);
Including in your project
Gradle
- Add the Jitpack repository to
build.gradle
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
}
- Add the dependency
dependencies {
implementation 'com.github.rhwood:jsplitbutton:Tag'
}
Maven
- Add the Jitpack repository to
pom.xml
<repositories>
<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>
</repositories>
- Add the dependency
<dependency>
<groupId>com.github.rhwood</groupId>
<artifactId>jsplitbutton</artifactId>
<version>Tag</version>
</dependency>
Migrating from Version 1.x to 2.0 or Newer
- Add the Jitpack.io repositoras shown above
- Change the Group ID in
pom.xml
orbuild.gradle
fromcom.alexandriasoftware.swing
tocom.github.rhwood.jsplitbutton
- Change the package name in imports from
com.alexandriasoftware.swing
tocom.github.rhwood.jsplitbutton
License
- Versions 1.3.1 and newer are released under the Apache 2.0 License
- Version 1.3.0 is released under the GNU Public License 2.0
Prior History
- Original development by Naveed Quadri in 2012
- Updated by Andreas Kuhtz in 2015