精华内容
下载资源
问答
  • Java列表和组合框
    千次阅读
    2018-08-15 13:43:02

    列表和组合框是又一类供用户选择的界面组件,用于在一组选择项目选择,组合框还可以输入新的选择。

    列表

    列表(JList)在界面中表现为列表框,是JList类或它的子类的对象。程序可以在列表框中加入多个文本选择项条目。列表事件的事件源有两种:

    • 一是鼠标双击某个选项:双击选项是动作事件,与该事件相关的接口是ActionListener,注册监视器的方法是addActionListener(),接口方法是actionPerformed(ActionEvent e)。
    • 二是鼠标单击某个选项:单击选项是选项事件,与选项事件相关的接口是ListSelectionListener,注册监视器的方法是addListSelectionListener,接口方法是valueChanged(ListSelectionEvent e)。


    JList 类的常用构造方法:

    1. JList():建立一个列表。
    2. JList(String list[]):建立列表,list是字符串数组,数组元素是列表的选择条目。


    JList类的常用方法:

    1. getSelectedIndex():获取选项的索引。返回最小的选择单元索引;只选择了列表中单个项时,返回该选择。
    2. getSelectedValue():获取选项的值。
    3. getSelectedIndices():返回所选的全部索引的数组(按升序排列)。
    4. getSelectedValues(),:返回所有选择值的数组,根据其列表中的索引顺序按升序排序。
    5. getItemCount():获取列表中的条数。
    6. setVisibleRowCount(int n):设置列表可见行数。
    7. setSelectionMode(int seleMode):设置列表选择模型。选择模型有单选和多选两种。
      • 单选:ListSelectionModel.SINGLE_SELECTION.
      • 多选:ListSelectionModel.MULTIPLE.INTERVAL_SELECTION.
    8. remove(int n):从列表的选项菜单中删除指定索引的选项。
    9. removeAll():删除列表中的全部选项。


    列表可以添加滚动条,列表添加滚动条的方法是先创建列表,然后再创建一个JScrollPane滚动面板对象,在创建滚动面板对象时指定列表。以下代码示意为列表list2添加滚动条:
        JScrollPane jsp = new JScrollPane(list2);

    【例 11-13】小应用程序有两个列表,第一个列表只允许单选,第二个列表允许多选(查看源文件)。

    组合框

    组合框(JComboBox)是文本框和列表的组合,可以在文本框中输入选项,也可以单击下拉按钮从显示的列表中进行选择。

    组合框的常用构造方法:

    1. JComboBox():建立一个没有选项的JComboBox对象。
    2. JComboBox(JComboBoxModel aModel):用数据模型建立一个JComboBox对象。
    3. JComboBox(Object[]items):利用数组对象建立一个JComboBox对象。


    组合框的其他常用方法有以下几个:

    1. addItem(Object obj):向组合框加选项。
    2. getItemCount():获取组合框的条目总数。
    3. removeItem(Object ob):删除指定选项。
    4. removeItemAt(int index):删除指定索引的选项。
    5. insertItemAt(Object ob,int index):在指定的索引处插入选项。
    6. getSelectedIndex():获取所选项的索引值(从0开始)。
    7. getSelectedItem():获得所选项的内容。
    8. setEditable(boolean b):设为可编辑。组合框的默认状态是不可编辑的,需要调用本方法设定为可编辑,才能响应选择输入事件。


    在JComboBox对象上发生事件分为两类。一是用户选定项目,事件响应程序获取用户所选的项目。二是用户输入项目后按回车键,事件响应程序读取用户的输入。第一类事件的接口是ItemListener;第二类事件是输入事件,接口是ActionListener。

    【例 11-14】一个说明组合框用法的应用程序。程序中声明的组合框子类实现ItemLister接口和ActionListener接口。组合框子类的窗口中设置了一个文本框和一个组合框,组合框中有三个选择。实现接口的监视方法将组合框的选择结果在文本框中显示

    【例 11-14】一个说明组合框用法的应用程序。程序中声明的组合框子类实现ItemLister接口和ActionListener接口。组合框子类的窗口中设置了一个文本框和一个组合框,组合框中有三个选择。实现接口的监视方法将组合框的选择结果在文本框中显示。
    public class Example6_4{
        public static void main(String args[]){
            ComboBoxDemo mycomboBoxGUI = new ComboBoxDemo();
        }
    }
    class ComboBoxDemo extends JFrame implements ActionListener,ItemListener{
        public static final int Width = 350;
        public static final int Height = 150;
        String proList[] = { "踢足球","打篮球","打排球" };
        JTextField text;
        JComboBox comboBox;
        public ComboBoxDemo(){
            setSize(Width,Height);
            setTitle("组合框使用示意程序");
            Container conPane = getContentPane();
            conPane.setBackground(Color.BLUE);
            conPane.setLayout(new FlowLayout());
            comboBox = new JComboBox(proList);
            comboBox.addActionListener(this);
            combobox.addItemListener(this);
            comboBox.setEditable(true);//响应键盘输入
            conPane.add(comboBox);
            text = new JTextField(10);
            conPane.add(text);
            this.setVisible(true);
        }
        public void actionPerformed(ActionEvent e){
            if(e.getSource()==comboBox)
                text.setText(comboBox.getSelectedItem().toString());
        }
        public void itemStateChanged(ItemEvent e){
            if(e.getSource()==comboBox){
                text.setText(comboBox.getSelectedItem().toString());
            }
        }
    }

    参考资料:http://www.makeru.com.cn/

    Java学习交流群:58713101

    更多相关内容
  • 标签://我们知道组合框是在实际应用里边最常用的一个组件之一我根据老师要求,运用组合框(JComboBox)来编译。下面是我的代码 因为不会用老师说的那个格式import java.awt.*; /* 包含用于创建用户界面和绘制图形图像...

    标签:

    //我们知道组合框是在实际应用里边最常用的一个组件之一

    我根据老师要求,运用组合框(JComboBox)来编译。

    下面是我的代码  因为不会用老师说的那个格式

    import java.awt.*; /* 包含用于创建用户界面和绘制图形图像的所有类。 */

    import javax.swing.*; /* 提供一组"轻量级"组件,尽量让这些组件在所有平台上的工作方式都相同 */

    public class JComboBoxDemo extends JFrame {

    private static final long serialVersionUID = 1L;

    public JComboBoxDemo() {

    /*

    * Container是所有容器的父类,又是Java语言的组件类Component的子类. 容器是一种具有容纳其他组件和容器的功能的组件

    * 一个Java的图形用户界面的最基本元素是组件,组件是可以以图形化的方式显示在屏幕上并能与用户进行交互的对象,如一个按钮,一个文本框等.

    * 在Java中,通常将组件放在一定的容器内使用 this.getContentPane()方法返回此窗体的 contentPane 对象

    */

    Container contentPane = this.getContentPane();

    /* 创建一个面板对象,指定布局管理器为GridLayout,1行2列.Jpanel的默认版面管理为FlowLayout */

    JPanel jPanel1 = new JPanel(new GridLayout(1, 2));

    // 利用String数组建立JComboBox

    String[] fruit = { "苹果", "香蕉", "桔子", "梨", "芒果" };

    JComboBox jComboBox1 = new JComboBox(fruit);

    jComboBox1.addItem("其他"); // 在列表框选项的最后再添加一个"其他"选项

    // 设置jList1对象的带标题边框

    jComboBox1.setBorder(BorderFactory.createTitledBorder("您最喜欢的水果:"));

    // 添加列表框jComboBox1至面板

    jPanel1.add(jComboBox1);

    // 利用ComboBoxModel建立JComboBox

    ComboBoxModel> myModel = new MyModel();

    JComboBox jComboBox2 = new JComboBox(myModel);

    // 设置jList1对象的带标题边框

    jComboBox2.setBorder(BorderFactory.createTitledBorder("您最喜欢的水果:"));

    // 添加列表框jComboBox2至面板

    jPanel1.add(jComboBox2);

    // 添加面板至父容器

    contentPane.add(jPanel1);

    // 设置本窗体的标题

    this.setTitle("JComboBoxDemo");

    // 设置本窗体显示的初始大小

    this.setSize(350, 90);

    this.setLocation(300, 200);

    // 设置本窗体初始可见

    this.setVisible(true);

    }

    class MyModel extends DefaultComboBoxModel {

    String[] fruit = { "苹果", "香蕉", "桔子", "梨", "芒果" };

    MyModel() {

    for (int i = 0; i < fruit.length; i++) {

    /* addElement()方法用于向列表框添加选项元素 */

    this.addElement(fruit[i]);

    }

    }

    }

    public static void main(String args[]) {

    JComboBoxDemo test = new JComboBoxDemo();

    }

    }

    20180110184209361577.jpg

    标签:

    展开全文
  • Java Swing桌面应用开发-组件-组合框

    千次阅读 2019-04-28 13:23:07
    1:什么是组合框 如下图,类似这样的 就是组合框 2:实现上述这个组合框 2.1:代码实现 /** * 组合框的学习 * */ package Swing; import java.awt.Container; import java.awt.event.ActionEvent; import ...

    1:什么是组合框

    如下图,类似这样的 就是组合框

    2:实现上述这个组合框

    2.1:代码实现

    /**
     * 组合框的学习
     * */
    package Swing;
    
    import java.awt.Container;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    
    import javax.swing.DefaultComboBoxModel;
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    
    public class Main8 extends JFrame{
    	
    	public static void main(String[] args) {
    		
    		Main8 main8 = new Main8();
    		main8.run();
    	}
    	
    	public void run(){
    		
    		//创建其他组件
    		JButton button = new JButton("确定");
    		button.setBounds(170, 50, 75, 35);
    		
    		//创建组合框数据容器
    		DefaultComboBoxModel<Object> ComboBoxModel = new DefaultComboBoxModel<>();
    		ComboBoxModel.addElement("张三");
    		ComboBoxModel.addElement("李四");
    		ComboBoxModel.addElement(123);
    		//创建组合框
    		JComboBox<Object> comboBox = new JComboBox<>(ComboBoxModel);
    		
    		//设置位置
    		comboBox.setBounds(50, 50, 100, 35);
    		comboBox.setEditable(true);//设置组合框可编辑 默认为false
    		
    		//添加监听器 打印选择
    		button.addActionListener(new ActionListener() {
    			
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				//下面两个获取item的内容是一样的
    				System.out.println(comboBox.getSelectedItem());
    				System.out.println(ComboBoxModel.getSelectedItem());
    				
    			}
    		});
    		
    		//创建container容器
    		Container container = this.getContentPane();
    		container.add(comboBox);
    		container.add(button);
    		/**
    		 * 窗体的设置
    		 * */
    		this.setLayout(null);// 设置空布局管理器
    		this.setTitle("组合框学习");
    		this.setVisible(true);
    		this.setSize(500, 500);
    		this.setLocationRelativeTo(null);// 设置居中显示
    		// 设置Jframe窗体关闭时 程序结束
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
    }

    2.2:组合框数据容器的来源

    2.2.1:方式一:DefaultComboBoxModel提供数据(推荐)

    这种方式数据类型可以死Object类型的

    //创建组合框数据容器
    DefaultComboBoxModel<Object> ComboBoxModel = new DefaultComboBoxModel<>();
    ComboBoxModel.addElement("张三");
    ComboBoxModel.addElement("李四");
    ComboBoxModel.addElement(123);
    //创建组合框
    JComboBox<Object> comboBox = new JComboBox<>(ComboBoxModel);

    2.2.2:数组的方式提供数据容器

    这种方式提供的数据只能是String类型的数据

    //创建组合框数据容器
    String[] str = new String[]{"张三","李四","王五"};
    //创建组合框
    JComboBox<Object> comboBox = new JComboBox<>(str);

    3:组合框联动(省市二级联动)

    3.1:代码实现

    package Swing;
    
    import java.awt.Container;
    import java.awt.Font;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;
    
    import javax.swing.DefaultComboBoxModel;
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    
    public class Main9 extends JFrame{
    
    	public static void main(String[] args) {
    		
    		Main9 main9 = new Main9();
    		main9.run();
    	}
    	
    	public void run(){
    		
    		//创建其他组件
    		JButton button = new JButton("确定");
    		button.setBounds(250, 50, 80, 35);
    		button.setFont(new Font("楷体", Font.CENTER_BASELINE, 15));
    		
    		//创建数据容器
    			//创建省
    		DefaultComboBoxModel<Object> boxModel = new DefaultComboBoxModel<>();
    		boxModel.addElement("山西");
    		boxModel.addElement("陕西");
    		boxModel.addElement("重庆");
    		
    			//创建市
    		DefaultComboBoxModel<Object> modelCity1 = new DefaultComboBoxModel<>(new String[]{"太原","大同","吕梁"});
    		DefaultComboBoxModel<Object> modelCity2 = new DefaultComboBoxModel<>(new String[]{"西安","宝鸡","汉中"});
    		DefaultComboBoxModel<Object> modelCity3 = new DefaultComboBoxModel<>(new String[]{"渝北","璧山","沙坪坝"});
    		//创建组合框省级和市级的组合框
    		JComboBox<Object> jComboBox1 = new JComboBox<>();//省
    		jComboBox1.setBounds(50, 50, 80, 35);
    		jComboBox1.setFont(new Font("楷体", Font.CENTER_BASELINE, 15));
    		
    		JComboBox<Object> jComboBox2 = new JComboBox<>();//市
    		jComboBox2.setBounds(150, 50, 80, 35);
    		jComboBox2.setFont(new Font("楷体", Font.CENTER_BASELINE, 15));
    		//设置jComboBox2默认展示为山西
    		jComboBox2.setModel(modelCity1); //setModel的数据类型是Object
    		
    		//添加数据容器到组合框
    		jComboBox1.setModel(boxModel);
    		
    		/**
    		 * jComboBox1设置监听器 
    		 * */
    		jComboBox1.addItemListener(new ItemListener() {
    			
    			@Override
    			public void itemStateChanged(ItemEvent e) {
    				
    				if(e.getItem().equals("山西")){
    					
    					jComboBox2.setModel(modelCity1);
    					
    				}else if(e.getItem().equals("陕西")){
    					
    					jComboBox2.setModel(modelCity2);
    					
    				}else if(e.getItem().equals("重庆")){
    					
    					jComboBox2.setModel(modelCity3);
    				}
    				
    			}
    		});
    		
    		//创建container
    		Container container = this.getContentPane();
    		container.add(jComboBox1);
    		container.add(jComboBox2);
    		container.add(button);
    		
    		//设置布局管理器
    		this.setLayout(null);		
    		/**
    		 * 设置窗体属性
    		 * */
    		this.setTitle("组合框-省市二级联动");
    		this.setVisible(true);
    		this.setSize(500, 500);
    		this.setLocationRelativeTo(null);// 设置居中显示
    		// 设置Jframe窗体关闭时 程序结束
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
    }

    3.2:效果展示

    4:对上述代码的优化

    对与上述代码,if ... else if 判断代码台冗余,我们采用List集合存放城市的DefaultComboBoxModel数据容器

    4.1:采用List集合存放DefaultComboBoxModel数据容器

    4.1.1:本方法结合addItemListener监听器

    代码实现

    package Swing;
    
    import java.awt.Container;
    import java.awt.Font;
    import java.awt.event.ItemEvent;
    import java.awt.event.ItemListener;
    import java.util.ArrayList;
    import java.util.List;
    
    import javax.swing.DefaultComboBoxModel;
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    
    public class Main9 extends JFrame{
    
    	public static void main(String[] args) {
    		
    		Main9 main9 = new Main9();
    		main9.run();
    	}
    	
    	public void run(){
    		
    		//创建其他组件
    		JButton button = new JButton("确定");
    		button.setBounds(250, 50, 80, 35);
    		button.setFont(new Font("楷体", Font.CENTER_BASELINE, 15));
    		
    		//创建数据容器
    			//创建省
    		DefaultComboBoxModel<Object> boxModel = new DefaultComboBoxModel<>();
    		boxModel.addElement("山西");
    		boxModel.addElement("陕西");
    		boxModel.addElement("重庆");
    		
    			//创建市
    		DefaultComboBoxModel<Object> modelCity1 = new DefaultComboBoxModel<>(new String[]{"太原","大同","吕梁"});
    		DefaultComboBoxModel<Object> modelCity2 = new DefaultComboBoxModel<>(new String[]{"西安","宝鸡","汉中"});
    		DefaultComboBoxModel<Object> modelCity3 = new DefaultComboBoxModel<>(new String[]{"渝北","璧山","沙坪坝"});
    		//创建集合
    		List<DefaultComboBoxModel<Object>> list = new ArrayList<DefaultComboBoxModel<Object>>();
    		list.add(modelCity1);
    		list.add(modelCity2);
    		list.add(modelCity3);
    		
    		
    		//创建组合框省级和市级的组合框
    		JComboBox<Object> jComboBox1 = new JComboBox<>();//省
    		jComboBox1.setBounds(50, 50, 80, 35);
    		jComboBox1.setFont(new Font("楷体", Font.CENTER_BASELINE, 15));
    		
    		JComboBox<Object> jComboBox2 = new JComboBox<>();//市
    		jComboBox2.setBounds(150, 50, 80, 35);
    		jComboBox2.setFont(new Font("楷体", Font.CENTER_BASELINE, 15));
    		//设置jComboBox2默认展示为山西
    		jComboBox2.setModel(modelCity1); //setModel的数据类型是Object
    		
    		//添加数据容器到组合框
    		jComboBox1.setModel(boxModel);
    		
    		/**
    		 * jComboBox1设置监听器 
    		 * */
    		jComboBox1.addItemListener(new ItemListener() {
    			
    			@Override
    			public void itemStateChanged(ItemEvent e) {
    				if(e.getStateChange() == ItemEvent.SELECTED){ //判断被选择 
    					
    					int index = jComboBox1.getSelectedIndex();
    					jComboBox2.setModel(list.get(index));
    				}
    				
    			}
    		});
    		
    		//创建container
    		Container container = this.getContentPane();
    		container.add(jComboBox1);
    		container.add(jComboBox2);
    		container.add(button);
    		
    		//设置布局管理器
    		this.setLayout(null);		
    		/**
    		 * 设置窗体属性
    		 * */
    		this.setTitle("组合框-省市二级联动");
    		this.setVisible(true);
    		this.setSize(500, 500);
    		this.setLocationRelativeTo(null);// 设置居中显示
    		// 设置Jframe窗体关闭时 程序结束
    		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    	}
    }

    4.1.2:采用addActionListener实现

    只需用更换一下监听器就可以了

    /**
    * jComboBox1设置监听器
    */
    jComboBox1.addActionListener(new ActionListener() {
    
    	@Override
    	public void actionPerformed(ActionEvent e) {
    
    		int index = jComboBox1.getSelectedIndex();
    		jComboBox2.setModel(list.get(index));
    
    	}
    });

     

     

     

     

     

     

     

     

    展开全文
  • 表单域包括文本框、复选框、列表框、组合框、按钮和签名域等,主要用于收集用户填写或选择的数据。这篇文章将介绍如何在Java应用程序中给PDF文档添加表单域。 导入jar文件 本文所使用的PDF类库是Free Spire.PDF ...

    表单域包括文本框、复选框、列表框、组合框、按钮和签名域等,主要用于收集用户填写或选择的数据。这篇文章将介绍如何在Java应用程序中给PDF文档添加表单域。

    导入jar文件

    本文所使用的PDF类库是Free Spire.PDF for Java, 如果你的项目是maven工程的话,在pom.xml文件中添加如下依赖,即可导入Free Spire.PDF for Java库jar文件。

    <repositories>
    
            <repository>
    
                <id>com.e-iceblue</id>
    
                <name>e-iceblue</name>
    
                <url>http://repo.e-iceblue.com/nexus/content/groups/public/</url>
    
            </repository>
    
    </repositories>
    
    <dependencies>
    
        <dependency>
    
            <groupId>e-iceblue</groupId>
    
            <artifactId>spire.pdf.free</artifactId>
    
            <version>2.2.2</version>
    
        </dependency>
    
    </dependencies>

    如果不是maven,可通过官网下载最新的Free Spire.PDF for Java的jar文件(是一个压缩包,解压缩后在lib文件夹下可找到jar文件),然后将jar文件添加至程序中,下载地址

    实现代码

    Free Spire.PDF for Java支持添加和操作多种PDF表单域,下表列出了一些常见的域及其在Free Spire.PDF for Java中对应的类名。

    域名

    类名

    文本框

    PdfTextBoxField

    复选框

    PdfCheckBoxField

    列表框

     PdfListBoxField

    组合框

    PdfComboBoxField

    单选按钮

    PdfRadioButtonListField

    按钮

    PdfButtonField

    签名域

    PdfSignatureField

     以下代码展示了如何给PDF文档添加文本框、复选框、列表框、组合框、单选按钮和按钮。签名域在之前的文章中已经写过了,此处不再介绍。

    import java.awt.*;
    import java.awt.geom.Point2D;
    import java.awt.geom.Rectangle2D;
    
    import com.spire.pdf.FileFormat;
    import com.spire.pdf.PdfDocument;
    import com.spire.pdf.PdfPageBase;
    import com.spire.pdf.fields.*;
    import com.spire.pdf.graphics.*;
    
    
    public class CreateFormFields {
        public static void main(String[] args) throws Exception {
            //创建PdfDocument对象
            PdfDocument doc = new PdfDocument();
    
            //添加页面
            PdfPageBase page = doc.getPages().add();
    
            //初始化位置变量
            float baseX = 100;
            float baseY = 50;
    
            //创建画刷对象
            PdfSolidBrush brush1 = new PdfSolidBrush(new PdfRGBColor(Color.BLUE));
            PdfSolidBrush brush2 = new PdfSolidBrush(new PdfRGBColor(Color.black));
    
            //创建TrueType字体
            PdfTrueTypeFont font= new PdfTrueTypeFont(new Font("Arial Unicode MS",Font.PLAIN,12),true);
    
            //添加文本框
            String text = "姓名:";//文本框前的文字
            page.getCanvas().drawString(text, font, brush1, new Point2D.Float(0, baseY));//在PDF中绘制文字
            Rectangle2D.Float tbxBounds = new Rectangle2D.Float(baseX, baseY , 150, 15);//创建Rectangle2D对象
            PdfTextBoxField textBox = new PdfTextBoxField(page, "TextBox");//创建文本框对象
            textBox.setBounds(tbxBounds);//设置文本框的Bounds,包括位置和大小信息
            textBox.setText("洋洋");//设置文本框的默认文字
            textBox.setFont(font);//设置文本框的字体
            doc.getForm().getFields().add(textBox);//添加文本框到PDF域的集合
            baseY +=25;
    
            //添加复选框
            page.getCanvas().drawString("民族:", font, brush1, new Point2D.Float(0, baseY));
            java.awt.geom.Rectangle2D.Float rec1 = new java.awt.geom.Rectangle2D.Float(baseX, baseY, 15, 15);
            PdfCheckBoxField checkBoxField = new PdfCheckBoxField(page, "CheckBox1");
            checkBoxField.setBounds(rec1);
            checkBoxField.setChecked(true);
            page.getCanvas().drawString("汉族", font, brush2, new Point2D.Float(baseX + 20, baseY));
            java.awt.geom.Rectangle2D.Float rec2 = new java.awt.geom.Rectangle2D.Float(baseX + 70, baseY, 15, 15);
            PdfCheckBoxField checkBoxField1 = new PdfCheckBoxField(page, "CheckBox2");
            checkBoxField1.setBounds(rec2);
            checkBoxField1.setChecked(false);
            page.getCanvas().drawString("少数民族", font,  brush2, new Point2D.Float(baseX+90, baseY));
            doc.getForm().getFields().add(checkBoxField);
            baseY += 25;
    
            //添加列表框
            page.getCanvas().drawString("年龄:", font, brush1, new Point2D.Float(0, baseY));
            java.awt.geom.Rectangle2D.Float rec = new java.awt.geom.Rectangle2D.Float(baseX, baseY, 150, 50);
            PdfListBoxField listBoxField = new PdfListBoxField(page, "ListBox");
            listBoxField.getItems().add(new PdfListFieldItem("3岁", "item1"));
            listBoxField.getItems().add(new PdfListFieldItem("4岁", "item2"));
            listBoxField.getItems().add(new PdfListFieldItem("5岁", "item3"));;
            listBoxField.setBounds(rec);
            listBoxField.setFont(font);
            listBoxField.setSelectedIndex(0);
            doc.getForm().getFields().add(listBoxField);
            baseY += 60;
    
            //添加单选按钮
            page.getCanvas().drawString("性别:", font, brush1, new Point2D.Float(0, baseY));
            PdfRadioButtonListField radioButtonListField = new PdfRadioButtonListField(page, "Radio");
            PdfRadioButtonListItem radioItem1 = new PdfRadioButtonListItem("Item1");
            radioItem1.setBounds(new Rectangle2D.Float(baseX, baseY, 15, 15));
            page.getCanvas().drawString("男", font, brush2, new Point2D.Float(baseX + 20, baseY));
            PdfRadioButtonListItem radioItem2 = new PdfRadioButtonListItem("Item2");
            radioItem2.setBounds(new Rectangle2D.Float(baseX + 70, baseY, 15, 15));
            page.getCanvas().drawString("女", font, brush2, new Point2D.Float(baseX + 90, baseY));
            radioButtonListField.getItems().add(radioItem1);
            radioButtonListField.getItems().add(radioItem2);
            radioButtonListField.setSelectedIndex(0);
            doc.getForm().getFields().add(radioButtonListField);
            baseY += 25;
    
            //添加组合框
            page.getCanvas().drawString("班级:", font, brush1, new Point2D.Float(0, baseY));
            Rectangle2D.Float cmbBounds = new Rectangle2D.Float(baseX, baseY, 150, 15);
            PdfComboBoxField comboBoxField = new PdfComboBoxField(page, "ComboBox");
            comboBoxField.setBounds(cmbBounds);
            comboBoxField.getItems().add(new PdfListFieldItem("幼儿园小班", "item1"));
            comboBoxField.getItems().add(new PdfListFieldItem("幼儿园中班", "itme2"));
            comboBoxField.getItems().add(new PdfListFieldItem("幼儿园大班", "item3"));
            comboBoxField.setSelectedIndex(0);
            comboBoxField.setFont(font);
            doc.getForm().getFields().add(comboBoxField);
            baseY += 25;
    
            //添加按钮
            page.getCanvas().drawString("提交按钮:", font, brush1, new Point2D.Float(0, baseY));
            Rectangle2D.Float btnBounds = new Rectangle2D.Float(baseX, baseY, 50, 15);
            PdfButtonField buttonField = new PdfButtonField(page, "Button");
            buttonField.setBounds(btnBounds);
            buttonField.setText("提交");
            buttonField.setFont(font);
            doc.getForm().getFields().add(buttonField);
    
            //保存文档
            doc.saveToFile("AddFormField.pdf", FileFormat.PDF);
        }
    }

    生成文档:

    展开全文
  • java:按钮(复选

    千次阅读 2022-04-04 18:46:38
    如都要引入相关的包类,以创建组件等。若复选也和单选一样使用按钮组,也可以达成单选的效果。当然反过来,圆形可勾选按钮(单选)也可以作为复选的功能来使用。圆形可勾选按钮(单选)具体可以看往篇...
  • 内容索引:Java源码,窗体界面,图形界面,窗体 Java 创建图形用户界面例子集,学习用Java创建窗体按钮、图标、按下图标和翻转图标、复选框、单选按钮、标签、文本域、、组合框、列表框、滚动条、滑动块、创建多个窗口...
  • java:下拉列表组件

    2022-04-19 22:25:32
    下拉列表组件一、关键代码一)、创建单个下拉列表的内容(项)二)、字符串数组添加多个下拉列表的内容(项)三)、模型方法给下拉列表添加内容(项)二、简单说明三、流程图四、源码一)、源码A二)、源码A...
  • java-swing-单选

    千次阅读 2019-06-19 12:21:54
    单选的实现类是JRadioButton类; 在使用时要引入: import javax.swing.JRadioButton; 单选和复选类似, 都是从JToggleButton 类派生出来的。但不同之处在于,单选的选框组中,只能有一个处于选中状态。...
  • //创建一个具有数组定义列表内容的组合框 comboBox1.setSelectedIndex(3);//设置下拉框的默认选择项为下拉框模型中的第三个变量 comboBox1.setEditable(false);//设置选项不可用 comboBox2=new JComboBox(city...
  • 列表和组合框是又一类供用户选择的界面组件,用于在一组选择项目选择,组合框还可以输入新的选择。 列表 列表(JList)在界面中表现为列表框,是JList类或它的子类的对象。程序可以在列表框中加入多个文本选择项...
  • JavaGUI——swing组件基础(三)单选和复选

    万次阅读 多人点赞 2018-05-28 12:33:37
    复选组件(JCheckBox):可以多选的选择单选组件(JRadioButton):只能单选的选择注意事项:同一组单选按钮必须先创建ButtonGroup,然后把单选组件放入到ButtonGroup中,才能在面板添加单选。...
  • Java Spring框架 (底层原理+入门)

    万次阅读 多人点赞 2020-07-01 19:55:12
    Java Spring框架 Spring 一、Spring的概述 定义: Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在...
  • JComboBox组件用来创建组合框对象。根据组合框是否可编辑的状态,可以将组合框分为两种常见的外观。可编辑状态外观是文本框和下拉列表的组合,不可编辑状态外观是按钮和下拉列表的组合。在按钮或文本的右侧有一个带...
  • Java Web目前主流的框架以及正在兴起的框架

    万次阅读 多人点赞 2017-12-18 22:31:05
    Java Web目前主流的框架以及正在兴起的框架收集我收集了当前主流的以及正在兴起的JavaWeb框架,以及对框架整合做了简单介绍。
  • Java Web框架篇之Spring

    万次阅读 多人点赞 2019-06-04 17:41:31
    使用IoC容器更加容易组合对象直接间关系,面向接口编程,降低耦合 Aop可以更加容易的进行功能扩展,遵循ocp开发原则 创建对象默认是单例的,不需要再使用单例模式进行处理 基于Ioc Aop,Spring提供了事务管理...
  • java JPanel设置边框和标题

    千次阅读 2020-10-10 17:57:50
    JPanel可以作为中间容器,组合多个组件来进行布局。可以设置该JPanel的边框和标题,程序如下: import javax.swing.*; import javax.swing.border.EtchedBorder; import javax.swing.border.TitledBorder; public...
  • Java微服务框架一览

    万次阅读 2017-06-23 13:59:57
    原文:Java Microservices: Code Examples, Tutorials, and More 作者:Angela Stringfellow 翻译:雁惊寒 ...微服务在开发领域的应用越来越广泛,因为开发人员致力于创建更大、更复杂的应用程序...
  • Java常见设计模式总结

    万次阅读 多人点赞 2021-09-18 17:18:54
    设计模式是一套经过反复使用的代码设计经验,目的是为了重用代码、让代码更容易被他人理解、保证代码可靠性。设计模式于己于人于系统都...总体来说,设计模式分为三大类:5种创建型模式、7种结构型模式、11种行为型模式
  • Java系统中常用日志框架

    万次阅读 多人点赞 2019-06-03 17:17:50
    文章目录日志介绍日志概念日志作用Java中常用日志框架Java常用日志框架之间的关系日志门面框架日志实现框架 日志介绍 日志概念 日志:在计算机领域,日志文件(logfile)是一个记录了发生在运行中的操作系统或其他...
  • java 并行框架 并行编程

    千次阅读 2015-06-30 17:58:51
    compose result from subresults //组合n个小问题的执行结果,得出当前问题的结果 } } work-stealing算法: work-stealing 是一种任务调度方法,由多个工作线程组成,每个工作线程用一个双端队列维护一...
  • Java UI框架概述 UI即使用在屏幕上显示的用户界面,该界面用来显示所有可能被用户查看喝操作的内容。 在HarmonyOS应用中所有的界面...Java UI框架提供了一部分Component和ComponentContainer的子类,即创建界面时所用
  • 这个也是超详细的,自己遇到的问题,然后总结下来的,有查的和自己理解的,很多点,对于做java web开发的同学很有帮助。笔记如下:1、面向对象的特征有哪些方面 1.抽象:抽象就是忽略一个主题中与当前目标无关的那些...
  • 组合框(Combo)与自定义组合框(CCombo) 组合框(Combo)与列表框(List)类似,只是两者在现实的外观上不太一样,还多了若干方法,还有自定义组合框(CCombo)又增加了集中不同的样式。 个人感觉 Combo 比 List 美观一些。 ...
  • 先来看看效果: 实现: 生成指定文字内容的二维码 二维码中间嵌入LOGO 二维码做圆角和白色...Kotlin和Java本质是一种东西… 有关kotlin写后端是否合适…自己看吧. 人家官网直接支持 不废话了, 上代码 需引入: ...
  • 摘要:Java源码,图形操作,图片...把showImagePane文件选择组合框、控制面板、状态栏标签加入到窗口内容窗格,使用文件选择器载入图像,将图像放大与缩小的函数添加到按钮事件处理类中,实现Java对BMP图片的放大与缩校
  • 通过XML , API或XML和API组合创建PDF文档。 能够处理文本,段落,标题,超链接,图形,附件等。 安全功能 PDF文档最多可以加密128位。 可以为PDF加密设置主密码和用户密码。 在内容修改,复制,打印和其他操作...
  • Java知识体系最强总结(2021版)

    万次阅读 多人点赞 2019-12-18 10:09:56
    本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新。也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读者的共同...
  • Java基础知识总结(2021版)

    万次阅读 多人点赞 2021-01-09 16:20:53
    大家好,我是素小暖,2012年毕业,2016年通过培训转行java开发,今天2021年1月9日,转行之路跌跌绊绊,蓦然回首,已经满满的4年工作经验了?但感觉知识还是相当的匮乏,没自信,也许是努力程度还不够吧。很感谢CSDN...
  • 根据RebelLabs,也是在线Java用户组(虚拟JUG)的媒体盟友所进行的调查,2018年最佳Java框架的阵容如下: 这样下来就是SpringMVC+Spring+MyBatis的整合使用。  这里可以学习慕课网的:  搞定Java SSM框架开发:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 149,743
精华内容 59,897
关键字:

java 创建组合框

java 订阅