java登录界面怎么把组件整齐排列
java自带布局管理器,有网格,流布局,卡牌布局等,可以自定义布局。我感觉自定义布局自由点,可以随意的控制单个组件的位置而不用考虑会影响到整体。
这个是我用自定义布局弄的,你看看
import java.awt.event.*;
import java.awt.*;
import javax.swing.*;
public class Demo extends JFrame implements ActionListener{
private JTextField textField;
private JLabel result;
private int lotteryNumber=110;
public Demo(){
Container c=getContentPane();
c.setLayout(null);
JLabel label1=new JLabel("请输入100-200的号码进行抽奖");
JLabel label2=new JLabel("抽奖号码");
textField=new JTextField(lotteryNumber+"");
JButton btn=new JButton("抽奖");
result=new JLabel("");
label1.setBounds(100,20,300,30);
label2.setBounds(100,35,100,100);
textField.setBounds(170,70,200,30);
btn.setBounds(400,70,60,25);
result.setBounds(50,75,400,100);
c.add(label1);
c.add(label2);
c.add(textField);
c.add(btn);
c.add(result);
btn.addActionListener(this);
setBounds(400,200,500,200);
setVisible(true);
}
public void actionPerformed(ActionEvent e){
int temp=(int)Math.floor(Math.random()*100+100);
if(temp==lotteryNumber){
result.setText("恭喜您,您中奖了");
}else{
result.setText("非常遗憾,您没中奖。 你抽中的号码是:"+temp);
}
}
public static void main(String args[]){
Demo app=new Demo();
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
2014-12-28
import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import java.awt.GridLayout;
import java.awt.GridBagLayout;
import java.awt.GridBagConstraints;
import java.awt.FlowLayout;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JButton;
import java.awt.Toolkit;
import java.awt.Dimension;
public class LogicFrame extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JPanel jPanel = null;
private JPanel jPanel1 = null;
private JPanel jPanel2 = null;
private JLabel jLabel = null;
private JTextField jTextField = null;
private JLabel jLabel1 = null;
private JPasswordField jPasswordField = null;
private JButton jButton = null;
private JButton jButton1 = null;
/**
* This method initializes jPanel
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel() {
if (jPanel == null) {
jLabel = new JLabel();
jLabel.setText("用户账户:");
jPanel = new JPanel();
jPanel.setLayout(new FlowLayout());
jPanel.add(jLabel, null);
jPanel.add(getJTextField(), null);
}
return jPanel;
}
/**
* This method initializes jPanel1
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel1() {
if (jPanel1 == null) {
jLabel1 = new JLabel();
jLabel1.setText("用户密码:");
jPanel1 = new JPanel();
jPanel1.setLayout(new FlowLayout());
jPanel1.add(jLabel1, null);
jPanel1.add(getJPasswordField(), null);
}
return jPanel1;
}
/**
* This method initializes jPanel2
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel2() {
if (jPanel2 == null) {
jPanel2 = new JPanel();
jPanel2.setLayout(new FlowLayout());
jPanel2.add(getJButton(), null);
jPanel2.add(getJButton1(), null);
}
return jPanel2;
}
/**
* This method initializes jTextField
*
* @return javax.swing.JTextField
*/
private JTextField getJTextField() {
if (jTextField == null) {
jTextField = new JTextField();
jTextField.setColumns(15);
}
return jTextField;
}
/**
* This method initializes jPasswordField
*
* @return javax.swing.JPasswordField
*/
private JPasswordField getJPasswordField() {
if (jPasswordField == null) {
jPasswordField = new JPasswordField();
jPasswordField.setColumns(15);
}
return jPasswordField;
}
/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setText("登录");
}
return jButton;
}
/**
* This method initializes jButton1
*
* @return javax.swing.JButton
*/
private JButton getJButton1() {
if (jButton1 == null) {
jButton1 = new JButton();
jButton1.setText("退出");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
//System.out.println("actionPerformed()"); // TODO Auto-generated Event stub actionPerformed()
int value= JOptionPane.showConfirmDialog(LogicFrame.this, "真的要退出吗?","退出",JOptionPane.YES_NO_OPTION );
if (value == JOptionPane.YES_OPTION) {
System.exit(0);
}
}
});
}
return jButton1;
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SwingUtilities.invokeLater(new Runnable() {
public void run() {
LogicFrame thisClass = new LogicFrame();
thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
thisClass.setVisible(true);
}
});
}
/**
* This is the default constructor
*/
public LogicFrame() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(301, 165);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setResizable(false);
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension d = tk.getScreenSize();
int x = (int)(d.getWidth()-301)/2;
int y = (int)(d.getHeight()-165)/2;
this.setLocation(x, y);
this.setIconImage(tk.getImage("D:/639460487/Image/Image1/%P@513%HY]~AE}QF2]H3J66.jpg"));
this.setContentPane(getJContentPane());
this.setTitle("登录");
this.setVisible(true);
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
GridLayout gridLayout = new GridLayout();
gridLayout.setRows(3);
gridLayout.setVgap(5);
jContentPane = new JPanel();
jContentPane.setLayout(gridLayout);
jContentPane.add(getJPanel(), null);
jContentPane.add(getJPanel1(), null);
jContentPane.add(getJPanel2(), null);
}
return jContentPane;
}
}
这位大神,是不是直接复制了别人的。。我希望有一个简单的就行了,这个有点复杂呀
搞个EV插件,很快就搞定了