×

jpanel的默认布局管理器

jpanel的默认布局管理器(jpanel是什么)

admin admin 发表于2023-09-14 04:54:00 浏览35 评论0

抢沙发发表评论

本文目录

jpanel是什么

JPanel 为javax.swing包中的,为面板容器,可以加入到JFrame中 , 它自身是个容器,可以把其他compont加入到JPanel中,如JButton,JTextArea,JTextFiled等,另外也可以在它上面绘图

java Swing JPanel 怎么修改默认布局

1.布局首先要理清思路,那一个组件放在哪个组件里面,就如你的代码他们分别是 JFrame f中放置了JPanel center,而JPanel center中又放置了5个testPanel t = new testPanel; 也就是说,你的5个test_shu对象的位置由center容器的布局方式决定即你的代码22行处 private JPanel center = new JPanel(new FlowLayout()); 这个布局方式决定,所以,而FlowLayout的布局方式的默认值是: 流式布局管理器把容器看成一个行集,好象平时在一张纸上写字一样,一行写满就换下一行。行高是用一行中的控件高度决定的。FlowLayout是所有 JApplet/JApplet的默认布局。在生成流式布局时能够指定显示的对齐方式,默认情况下是居中(FlowLayout.CENTER) FlowLayout() //生成一个默认的流式布局,组件在容器里居中,每个组件之间留下5个像素的距离. FlowLayout(int alinment) //可以设定每行组件的对齐方式. FlowLayout(int alignment,int horz,int vert) //设定对齐方式并设定组件水平和垂直的距离. 当容器的大小发生变化时,用FlowLayout管理的组件会发生变化,其变化规律是:组件的大小不变,但是相对位置会发生变化. 所以要达到你的效果,只需要将 22行处的代码改成如下设置就可以了: private JPanel center = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0));

JPanel的定义及作用是什么,清楚举例子解释一下更好😊

JPanel 是什么?

答:  Java图形用户界面工具包swing中的面板容器类,是一种轻量级的容器,可以加入到JFrame, JDialog等容器中。JPanel默认的布局管理器流式布局 (FlowLayout).

JPanel 作用?

答: 可以把其他的组件添加到JPanel里, 比如按钮JButton, 标签JLabel, 文本框JTextField 等添加到JPanel里, 变成复杂的面板.

例子:下面的窗口 ,我们可以解析成为2个JPanel面板

第一个面板添加了文本框 ,标签 等组件

第二个面板添加了按钮组件

具体的代码

import javax.swing.*;import java.awt.*;import java.awt.event.*;public class AddFrame extends JFrame implements ActionListener { JTextField jtf1, jtf2, jtf3;//文本框 JButton jbAdd, jbClear;//按钮 String defNum = “0.0“; //默认值 public AddFrame() { //jp1 显示加法算式用 JPanel jp1 = new JPanel(); //面板1 jtf1 = new JTextField(8); JLabel jl1 = new JLabel(“+“); jtf2 = new JTextField(8); JLabel jl2 = new JLabel(“=“); jtf3 = new JTextField(8); jtf3.setEditable(false);//结果文本框,禁止 jp1.add(jtf1); jp1.add(jl1); jp1.add(jtf2); jp1.add(jl2); jp1.add(jtf3); clearText();//设置文本默认值 //jp2用于显示按钮 JPanel jp2 = new JPanel();//面板2 jbAdd = new JButton(“相加“); jbAdd.addActionListener(this); jbClear = new JButton(“清空“); jbClear.addActionListener(this); jp2.add(jbAdd); jp2.add(jbClear); add(jp1); add(jp2); setLayout(new GridLayout(2, 1));//布局,2行1列 setTitle(“加法计算器“);// 标题 setSize(360, 128);// 窗口大小 setLocationRelativeTo(null);// 窗口居中 setResizable(false);// 窗口禁止缩放 setDefaultCloseOperation(EXIT_ON_CLOSE);// 窗口点击关闭时,退出程序 } public static void main(String args) { new AddFrame().setVisible(true);// 创建窗口实例并可见 } private void clearText() {//设置文字为初始化的0.0 jtf1.setText(defNum); jtf2.setText(defNum); jtf3.setText(defNum); } @Override public void actionPerformed(ActionEvent e) { //如果点击的是相加按钮. if (e.getSource() == jbAdd) { double d1, d2 = 0; try { d1 = Double.parseDouble(jtf1.getText().trim());//从文字到数字的转换 d2 = Double.parseDouble(jtf2.getText().trim()); } catch (Exception ex) { jtf3.setText(defNum); JOptionPane.showMessageDialog(null, “Sorry!不能输入字母汉字等.\n请输入合法的数字.“, “错误提示“, JOptionPane.ERROR_MESSAGE); return; } jtf3.setText((d1 + d2) + ““); } else if (e.getSource() == jbClear) {//如果点击的时清空按钮 clearText(); } }}