import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
public class test extends JFrame{
public test(){
Container con = getContentPane();
con.setLayout(new BorderLayout());
final JTextArea jt = new JTextArea(5,5);
jt.setEditable(false);//不可修改
JScrollPane js = new JScrollPane(jt);
JPanel jp1 = new JPanel();
JPanel jp2 = new JPanel();
JPanel jp3 = new JPanel();
jp1.add(js); //注意这里是将js添加到容器中
con.add(jp1,BorderLayout.NORTH);
JCheckBox jc1 = new JCheckBox("1");
JCheckBox jc2 = new JCheckBox("2");
JCheckBox jc3 = new JCheckBox("3");
jp2.add(jc1);
jp2.add(jc2);
jp2.add(jc3);
con.add(jp2,BorderLayout.CENTER);
JButton jb = new JButton("button");
jp2.add(jb);
JPanel jp5 = new JPanel();
jp5.setLayout(new BorderLayout());
jp3.setLayout(new FlowLayout(FlowLayout.CENTER,10,10));
//强烈的布局感,在frame窗体用边界布局,再south中建立jp3的JPanel,再面板中使用流布局
JComboBox jc = new JComboBox(new String[] {"下拉菜单","2","3"});
jp3.add(jc);
JButton jbb = new JButton("button2");
jbb.setSize(10, 10);
jp3.add(jbb);
jp5.add(jp3,BorderLayout.NORTH);
JList jl = new JList(new String[] {"1","2","3","4","1","2","3","4"});
jl.setSize(1, 2);
JScrollPane jss = new JScrollPane(jl);
JPanel jp4 = new JPanel();
jp4.setLayout(new FlowLayout(FlowLayout.CENTER,10,10));
jp4.add(jss);
jp5.add(jp4,BorderLayout.CENTER);
final JTextField jtt = new JTextField("",20);
jbb.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
jtt.setText("");
}
});
jp3.add(jtt);
final JPasswordField jpass = new JPasswordField("",20);
jpass.setEchoChar('*');
JButton jbpass = new JButton("password");
jp3.add(jpass);
jp3.add(jbpass);
jbpass.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
jtt.setText(jpass.getText());
}
});
con.add(jp5,BorderLayout.SOUTH);
jb.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
new Dialog();
}
});
jc1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
jt.append("jc1被选中\n");
}
});
jc2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
jt.append("jc2被选中\n");
}
});
jc3.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
jt.append("jc3被选中\n");
}
});
setVisible(true);
setSize(500, 500);
}
public static void main(String[] agrs){
new test();
}
}
class Dialog extends JDialog{
public Dialog(){
super(new JFrame(),"xxx",true);
Container con = getContentPane();
JTextArea jt = new JTextArea(50, 20);
JScrollPane js = new JScrollPane(jt);
con.add(js);
setSize(500, 200);
setVisible(true);
}
}