(JAVA)JPanel面板使用

JPanel面板

  • JPanel面板依赖与窗体进行使用,面板只能放在窗体中使用,不能单独展示出来。
    • JPanel和其它组件一样可以添加组件、设置布局、更改属性
    • JPanel的每一个容器都可以有自己独立的布局与组件,组件会随着窗体的扩大而扩大,缩小而缩小
etBounds(100,100,500,300);//设置窗体的位于屏幕的水平线(X)、垂直线(Y)、宽、高
//设置窗体的关闭方式,EXIT_ON_CLOSE(关闭窗体并结束程序)
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
Container c=getContentPane();//创建容器
//使用网格布局设为两行两列,以及四个面板的边距为10px
c.setLayout(new GridLayout(2,2,10,10));

//添加四个JPannel面板
JPanel p1=new JPanel();
//对第一个面板使用网格布局一行三列边距为10
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设置组件
p1.add(new JButton("p1"));//添加按钮
p1.add(new JButton("p1"));//添加按钮
p1.add(new JButton("p1"));//添加按钮
p1.add(new JButton("p1"));//添加按钮

//给p2设置组件
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();
//设置按扭宽3列,长2行,水平间距5,垂直间距5
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创建两个单选按钮
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"};
//JList<String> j1=new JList<>(itens);
DefaultListModel<String> model=new DefaultListModel<>();
for(String tmp:itens){
    model.addElement(tmp);//像数据模型添加元素
}
JList<String> j1=new JList<>();
model.addElement("添加元素");//数据模型添加新元素
j1.setModel(model);//列表框载入数据模型

//SINGLE_SELECTION 单选模式
//SINGLE_INTERVAL_SELECTION 按住ctrl只能连续选择相邻的元素
//MULTIPLE_INTERVAL_SELECTION 按住ctrl可随便选
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();//设置一个文本框20像素长度
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) {
        //使用isSelected()方法获取选中状态,这个方法会返回一个布尔值返回布尔值
        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);//密码框长度,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);
  • 4
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值