자바 스윙 SpringLayout 탄성 레이아웃 구현 코드
6289 단어 SwingSpringLayout신축성 레이아웃
공식 자바 Docsapi:
(1)SpringLayout
레이아웃 관리 자 를 표시 합 니 다.이 레이아웃 관리 자 를 통 해 구성 요소 나 용기 의 제약 대상 을 가 져 올 수 있 습 니 다.다음 과 같 습 니 다.
// ,
SpringLayout layout = new SpringLayout();
JPanel panel = new JPanel(layout);
// ,
JButton btn = new JButton("Button");
panel.add(btn);
// ( , )
SpringLayout.Constraints btnCons = layout.getConstraints(btn);
// ( , )
SpringLayout.Constraints panelCons = layout.getConstraints(panel);
(2)SpringLayout.Constraints구성 요소 의 위치 와 크기 에 대한 제약 을 표시 합 니 다.모든 구성 요소 인 스 턴 스 는 하나의 제약 대상 에 대응 합 니 다.이 제약 을 통 해 구성 요소 네 변 의 좌표 와 너비,높이 를 얻 고 설정 할 수 있 습 니 다.자주 사용 하 는 방법 은 다음 과 같 습 니 다.
/*
* ( X WEST,Y NORTH)
*/
void setX(Spring x)
void setY(Spring y)
Spring getX()
Spring getY()
/*
*
*/
void setWidth(Spring w)
void setHeight(Spring h)
Spring getHeight()
Spring getWidth()
/*
*
* edgeName :
* SpringLayout.NORTH, SpringLayout.SOUTH, SpringLayout.EAST, SpringLayout.WEST
* SpringLayout.HORIZONTAL_CENTER, SpringLayout.VERTICAL_CENTER
* SpringLayout.BASELINE
* SpringLayout.WIDTH, SpringLayout.HEIGHT
*/
Spring getConstraint(String edgeName)
void setConstraint(String edgeName, Spring s)
(3)SpringSpring 은 SpringLayout 에서 거 리 를 측정 하 는 것 으로 볼 수 있다.하나의 Spring 인 스 턴 스 는 거리 나 길 이 를 표시 하고 간단 한 산술 연산(Spring 이 제공 하 는 정적 방법 으로 계산)을 지원 합 니 다.자주 사용 하 는 방법 은 다음 과 같 습 니 다.
// spring
static Spring constant(int pref)
// spring , spring
static Spring sum(Spring s1, Spring s2)
// spring
static Spring max(Spring s1, Spring s2)
// spring
static Spring scale(Spring s, float factor)
// spring
static Spring width(Component c)
// spring
static Spring height(Component c)
// spring
int getValue()
void setValue(int value)
2.코드 인 스 턴 스
package com.xiets.swing;
import javax.swing.*;
public class Main {
public static void main(String[] args) {
//
JFrame jf = new JFrame(" ");
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
jf.setSize(300, 200);
jf.setLocationRelativeTo(null);
// ,
SpringLayout layout = new SpringLayout();
JPanel panel = new JPanel(layout);
jf.setContentPane(panel);
//
JLabel label = new JLabel("Test JLabel: ");
JButton btn = new JButton("Btn");
JTextField textField = new JTextField("Text Field");
//
panel.add(label);
panel.add(btn);
panel.add(textField);
/*
* ( )
*/
// : (5, 5)
SpringLayout.Constraints labelCons = layout.getConstraints(label); // ( , )
labelCons.setX(Spring.constant(5));
labelCons.setY(Spring.constant(5));
// : 5, ;
SpringLayout.Constraints btnCons = layout.getConstraints(btn);
btnCons.setX(Spring.constant(5));
btnCons.setY(labelCons.getConstraint(SpringLayout.SOUTH));
btnCons.setConstraint(SpringLayout.EAST, labelCons.getConstraint(SpringLayout.EAST));
// : + 5, 5
SpringLayout.Constraints textFieldCons = layout.getConstraints(textField);
textFieldCons.setX(
Spring.sum(
labelCons.getConstraint(SpringLayout.EAST),
Spring.constant(5)
)
);
textFieldCons.setY(Spring.constant(5));
/*
* ( ) ,
*/
SpringLayout.Constraints panelCons = layout.getConstraints(panel); //
// + 5
panelCons.setConstraint(
SpringLayout.EAST,
Spring.sum(
textFieldCons.getConstraint(SpringLayout.EAST),
Spring.constant(5)
)
);
//
Spring maxHeightSpring = Spring.max(
btnCons.getConstraint(SpringLayout.SOUTH),
textFieldCons.getConstraint(SpringLayout.SOUTH)
);
// maxHeightSpring + 5
panelCons.setConstraint(
SpringLayout.SOUTH,
Spring.sum(
maxHeightSpring,
Spring.constant(5)
)
);
//
jf.setVisible(true);
}
}
결과 전시:SpringLayout 보다 상세 하고 구체 적 인 소개 와 사용 방식 은 자바 공식 문서 참조:How to Use SpringLayout
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swing 공통 구성 요소의 텍스트 상자 및 텍스트 영역1. JtextField(텍스트 상자) 사용 JtextField는 경량급 구성 요소로 한 줄의 텍스트를 편집하여 잘라내기, 복사, 붙여넣기, 단축키 등의 작업을 할 수 있으며, 텍스트의 길이가 표시 범위를 초과하면 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.