Skip to content

idayrus/swan-layout

Folders and files

NameName
Last commit message
Last commit date

Latest commit

0cd1040 · May 8, 2022

History

24 Commits
Dec 24, 2021
Dec 24, 2021
Dec 24, 2021
Dec 23, 2021
May 8, 2022
Dec 23, 2021
May 8, 2022
Dec 23, 2021
Dec 24, 2021
May 8, 2022
Dec 23, 2021
Dec 23, 2021
Dec 23, 2021
Dec 23, 2021

Repository files navigation

Swan Layout

GitHub closed issues GitHub Repo stars

Bringing LinearLayout and FrameLayout from Android to Java Swing


Install

Add to root build.gradle

allprojects {
  repositories {
    maven { url 'https://jitpack.io' }
  }
}

Add to module build.gradle

dependencies {
  implementation 'com.github.idayrus:swan-layout:VERSION'
}

Documentation

See full documentation at https://idayrus.github.io/swan-layout/

Examples

LinearLayout

val panelVertical = JPanel(LinearLayout(LinearLayout.VERTICAL))
val panelHorizontal = JPanel(LinearLayout(LinearLayout.HORIZONTAL))
val lc = LinearConstraints()

lc.reset()
lc.width = 0
lc.weight = 0.5
lc.margin = 10
lc.marginEnd = 5
panelHorizontal.add(JButton("Horizontal (weight 0.5)"), lc)

lc.reset()
lc.width = 0
lc.weight = 0.5
lc.margin = 10
lc.marginStart = 5
panelHorizontal.add(JButton("Horizontal (weight 0.5)"), lc)

// Add panelHorizontal to panelVertical
lc.reset()
lc.width = LinearConstraints.MATCH_PARENT
lc.height = LinearConstraints.WRAP_CONTENT
panelVertical.add(panelHorizontal, lc)

lc.reset()
lc.margin = 10
lc.marginTop = 0
lc.width = LinearConstraints.WRAP_CONTENT
lc.height = LinearConstraints.WRAP_CONTENT
lc.gravity = LinearConstraints.CENTER
panelVertical.add(JButton("Gravity Center"), lc)

lc.reset()
lc.margin = 10
lc.marginTop = 0
lc.width = LinearConstraints.MATCH_PARENT
lc.height = LinearConstraints.MATCH_PARENT
panelVertical.add(JButton("Fill Remain"), lc)

FrameLayout

val panel = JPanel(FrameLayout())
val fc = FrameConstraints()

fc.margin = 10
fc.gravity = FrameConstraints.TOP_START
panel.add(JButton("TOP_START"), fc)

fc.gravity = FrameConstraints.CENTER
panel.add(JButton("CENTER_CENTER"), fc)

fc.gravity = FrameConstraints.BOTTOM_END
panel.add(JButton("BOTTOM_END"), fc)

Screenshots

LinearLayout

FrameLayout