JPanel面板
- JPanel面板依赖与窗体进行使用,面板只能放在窗体中使用,不能单独展示出来。
- JPanel和其它组件一样可以添加组件、设置布局、更改属性
- JPanel的每一个容器都可以有自己独立的布局与组件,组件会随着窗体的扩大而扩大,缩小而缩小
etBounds(100,100,500,300);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
Container c=getContentPane();
c.setLayout(new GridLayout(2,2,10,10));
JPanel p1=new JPanel();
p1.setLayout(new GridLayout(1,3,10,10));
JPanel p2=new JPanel(new BorderLayout());
JPanel p3=new JPanel(new GridLayout(1,2,10,10));
JPanel p4=new JPanel(new GridLayout(2,1,10,10));
p1.setBorder(BorderFactory.createTitledBorder("画板1"));
p2.setBorder(BorderFactory.createTitledBorder("画板2"));
p1.add(new JButton("p1"));
p1.add(new JButton("p1"));
p1.add(new JButton("p1"));
p1.add(new JButton("p1"));
p2.add(new JButton("p1"),BorderLayout.CENTER);
p2.add(new JButton("p2"),BorderLayout.SOUTH);
p2.add(new JButton("p3"),BorderLayout.WEST);
p2.add(new JButton("p4"),BorderLayout.NORTH);
p2.add(new JButton("p5"),BorderLayout.EAST);
c.add(p1);c.add(p2);
setVisible(true);
按钮JButton
- 六种按钮效果
- 1.设置按钮不可用无任何点击效果
- 2.设置按钮背景颜色
- 3.去掉按钮的边框
- 4.给按钮加上边框
- 6.给按钮设置图片
- 7.可点击按钮,弹出模态窗
setBounds(100,100,500,500);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
Container c=getContentPane();
c.setLayout(new GridLayout(3,2,5,5));
JButton btn[]=new JButton[6];
for(int i=0;i<btn.length;i++){
btn[i]=new JButton();
c.add(btn[i]);
}
btn[0].setText("不可用");
btn[0].setEnabled(false);
btn[1].setText("有背景色");
btn[1].setBackground(Color.YELLOW);
btn[2].setText("无边框");
btn[2].setBorderPainted(false);
btn[3].setText("右边框");
btn[3].setBorder(BorderFactory.createLineBorder(Color.RED));
Icon cion=new ImageIcon("");
btn[4].setIcon(cion);
btn[4].setToolTipText("图片按钮");
btn[5].setText("可点击");
btn[5].addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(consu.this,"点击按钮");
}
});
setVisible(true);
单选按钮(JRadioButton)
JRadioButton left=new JRadioButton("向左走");
JRadioButton right=new JRadioButton("向右走");
c.add(left);
c.add(right);
ButtonGroup group=new ButtonGroup();
group.add(left);
group.add(right);
left.setSelected(true);
JButton btn=new JButton("打印");
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(left.getText()+"按钮选中状体:"+left.isSelected());
System.out.println(right.getText()+"按钮选中状体:"+right.isSelected());
group.clearSelection();
}
});
c.add(btn);
复选框(JCheckDox)
JCheckBox c1=new JCheckBox("1");
下拉框
JComboBox<String> comboBox=new JComboBox<>();
String items[]={"身份证","学生证","工作证"};
ComboBoxModel cm=new DefaultComboBoxModel<>(items);
comboBox.setModel(cm);
JButton btn=new JButton("打印");
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("选中的索引"+comboBox.getSelectedIndex());
System.out.println("选中的值:"+comboBox.getSelectedItem());
}
});
btn.setBounds(100,10,60,20);
c.add(btn);
comboBox.setEditable(true);
comboBox.setBounds(10,10,80,21);
c.add(comboBox);
setVisible(true);
列表框(Jlist)
String itens[]={"元素1","元素2","元素3","元素4","元素5","元素6","元素7","元素8"};
DefaultListModel<String> model=new DefaultListModel<>();
for(String tmp:itens){
model.addElement(tmp);
}
JList<String> j1=new JList<>();
model.addElement("添加元素");
j1.setModel(model);
j1.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
JScrollPane js=new JScrollPane(j1);
js.setBounds(10,10,100,100);
c.add(js);
}
文本框(JTextField)
JTextField jt=new JTextField();
jt.setColumns(20);
jt.setText("ss");
jt.setFont(new Font("黑体",Font.PLAIN,20));
c.add(jt);
Button btn=new JButton("确认");
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("文本框中的类容为"+jt.getText());
jt.setText("");
jt.requestFocus();
}
});
复选框(JCheckBox)
.setLayout(new FlowLayout());
JCheckBox c1=new JCheckBox();
c.add(c1);
Button btn=new JButton("打印");
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(c1.getText()+"复选框中状态"+c1.isSelected());
}
});
密码框(JPasswordField)
- 密码框输入,可修改字符,如:不管输入什么都显示#号
setBounds(100,100,400,150);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
Container c=getContentPane();
c.setLayout(new FlowLayout());
JPasswordField jp=new JPasswordField();
jp.setColumns(20);
jp.setFont(new Font("Arial",Font.BOLD,18));
jp.setEchoChar('#');
jp.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
char ch[]= jp.getPassword();
String str=new String(ch);
System.out.println(str);
}
});
c.add(jp);
setVisible(true);
文本域
Container c=getContentPane();
c.setLayout(new FlowLayout());
JTextArea area=new JTextArea("这是一个文本域");
area.setFont(new Font("楷体",Font.PLAIN,20));
area.setRows(5);
area.setColumns(10);
area.append("添加内容");
area.setFont(new Font("楷体",Font.PLAIN,20));
JScrollPane js=new JScrollPane(area);
c.add(js);