java-图形界面(控件)
java-图形界面(控件)
记录学习过程
import javax.swing.*;
import java.awt.*;
public class LoginPanel extends JPanel {
public static final int LEFT_PADDING=50;
public static final int RIGHT_PADDING=50;
public static final int TOP_PADDING=20;
public static final int BOTTOM_PADDING=20;
public static final int H_GAP=8;
public static final int V_GAP=7;
public void initPanel(){
this.setLayout(null);
JLabel title = new JLabel("用户注册");
Font titleFont =new Font("微软雅黑",Font.BOLD,20);
title.setFont(titleFont);
Dimension titleD=title.getPreferredSize();
JLabel userLabel =new JLabel("用户名");
JTextField userField=new JTextField();
userField.setPreferredSize(new Dimension(200,22));
int panelWidth = userLabel.getPreferredSize().width+H_GAP+userField.getPreferredSize().width+LEFT_PADDING+RIGHT_PADDING;
//设置title位置
int titleX=panelWidth/2-titleD.width/2;
int titleY=TOP_PADDING;
title.setBounds(titleX,titleY,titleD.width,titleD.height);
this.add(title);
//设置用户名标签的位置
int userLabelX=LEFT_PADDING;
int userLabelY=titleY+title.getPreferredSize().height+V_GAP;
userLabel.setBounds(userLabelX,userLabelY,userLabel.getPreferredSize().width,userLabel.getPreferredSize().height);
this.add(userLabel);
//设置用户输入框的位置
int userFieldX=userLabelX+userLabel.getPreferredSize().width+H_GAP;
int userFieldY=userLabelY;
userField.setBounds(userFieldX,userFieldY,userField.getPreferredSize().width,userField.getPreferredSize().height);
this.add(userField);
JLabel passwordLabel =new JLabel("密码");
//设置密码标签的位置
int passwordLabelX= userLabelX;
int passwordLabelY=userLabelY+userLabel.getPreferredSize().height+V_GAP;
passwordLabel.setBounds(passwordLabelX,passwordLabelY,passwordLabel.getPreferredSize().width,passwordLabel.getPreferredSize().height);
this.add(passwordLabel);
JPasswordField passwordField =new JPasswordField();
passwordField.setPreferredSize(new Dimension(200,22));
//需要去设置密码输入框的位置
int passwordFieldX=userFieldX;
int passwordFieldY=passwordLabelY;
passwordField.setBounds(passwordFieldX,passwordFieldY,passwordField.getPreferredSize().width,passwordField.getPreferredSize().height);
this.add(passwordField);
JLabel sexLabel=new JLabel("性别");
//设置性别标签的位置
int sexLabelX=passwordLabelX;
int sexLabelY=passwordLabelY+passwordLabel.getPreferredSize().height+V_GAP;
sexLabel.setBounds(sexLabelX,sexLabelY,sexLabel.getPreferredSize().width,sexLabel.getPreferredSize().height);
this.add(sexLabel);
JRadioButton manButton= new JRadioButton("男");
JRadioButton womanButton= new JRadioButton("女");
ButtonGroup bg= new ButtonGroup();
bg.add(manButton);
bg.add(womanButton);
//设置性别选择按钮的位置
int manButtonX=sexLabelX+sexLabel.getPreferredSize().width+H_GAP;
int manButtonY=sexLabelY;
manButton.setBounds(manButtonX,manButtonY,manButton.getPreferredSize().width,manButton.getPreferredSize().height);
int womanButtonX=manButtonX+manButton.getPreferredSize().width+H_GAP;
int womanButtonY=manButtonY;
womanButton.setBounds(womanButtonX,womanButtonY,womanButton.getPreferredSize().width,womanButton.getPreferredSize().height);
this.add(manButton);
this.add(womanButton);
JLabel hobby=new JLabel("爱好");
JCheckBox study=new JCheckBox("学习");
JCheckBox music =new JCheckBox("听音乐");
JCheckBox book =new JCheckBox("看书");
JCheckBox game=new JCheckBox("游戏");
//设置爱好按钮的位置
int hobbyX=sexLabelX;
int hobbyY=sexLabelY+sexLabel.getPreferredSize().height+V_GAP;
hobby.setBounds(hobbyX,hobbyY,hobby.getPreferredSize().width,hobby.getPreferredSize().height);
this.add(hobby);
int studyX=hobbyX+hobby.getPreferredSize().width+H_GAP;
int studyY=hobbyY;
study.setBounds(studyX,studyY,study.getPreferredSize().width,study.getPreferredSize().height);
this.add(study);
int musicX=studyX+study.getPreferredSize().width+H_GAP;
int musicY=studyY;
music.setBounds(musicX,musicY,music.getPreferredSize().width,music.getPreferredSize().height);
this.add(music);
int bookX=studyX;
int bookY=studyY+study.getPreferredSize().height+H_GAP;
book.setBounds(bookX,bookY,book.getPreferredSize().width,book.getPreferredSize().height);
this.add(book);
int gameX=musicX;
int gameY=bookY;
game.setBounds(gameX,gameY,game.getPreferredSize().width,game.getPreferredSize().height);
this.add(game);
JLabel education = new JLabel("学历");
int educationX=sexLabelX;
int educationY=bookY+book.getPreferredSize().height+V_GAP;
education.setBounds(educationX,educationY,education.getPreferredSize().width,education.getPreferredSize().height);
this.add(education);
JComboBox eduBox = new JComboBox();
eduBox.addItem("大专");
eduBox.addItem("高中");
//设置学历按钮的位置
int eduBoxX=educationX+education.getPreferredSize().width+H_GAP+30;
int eduBoxY=educationY;
eduBox.setBounds(eduBoxX,eduBoxY,eduBox.getPreferredSize().width,eduBox.getPreferredSize().height);
this.add(eduBox);
JLabel reduce = new JLabel("自我介绍");
JTextArea reduceArea =new JTextArea();
reduceArea.setPreferredSize(new Dimension(160,100));
//设置自我介绍的位置
int reduceX=educationX;
int reduceAreaY=eduBoxY+eduBox.getPreferredSize().height+V_GAP;
int reduceY=reduceAreaY+reduceArea.getPreferredSize().height/2-reduce.getPreferredSize().height/2;
reduce.setBounds(reduceX,reduceY,reduce.getPreferredSize().width,reduce.getPreferredSize().height);
int reduceAreaX=reduceX+reduce.getPreferredSize().width+H_GAP;
reduceArea.setBounds(reduceAreaX,reduceAreaY,reduceArea.getPreferredSize().width,reduceArea.getPreferredSize().height);
this.add(reduce);
this.add(reduceArea);
JButton regist=new JButton("注册");
int registX=panelWidth/2-regist.getPreferredSize().width/2;
int registY=reduceY+reduce.getPreferredSize().height+reduceArea.getPreferredSize().height/2+V_GAP;
regist.setBounds(registX,registY,regist.getPreferredSize().width,regist.getPreferredSize().height);
this.add(regist);
int panelHeight=registY+regist.getPreferredSize().height+TOP_PADDING+BOTTOM_PADDING;
this.setSize(panelWidth,panelHeight);
}
}
import javax.swing.*;
public class LoginFrame extends JFrame {
public void init(){
LoginPanel lp=new LoginPanel();
lp.initPanel();
this.add(lp);
this.setSize(lp.getPreferredSize());
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
LoginFrame lf=new LoginFrame();
lf.init();
}
}
java-图形界面(控件)相关教程