如何在java Swing中创建动态jCheckBox [英] how to create dynamic jCheckBox in java Swing

查看:53
本文介绍了如何在java Swing中创建动态jCheckBox的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何动态创建jcheckbox;

i在组合框中获取表名,我想添加与所选表的列数一样多的复选框。

请帮助我;

how can i create jcheckboxes dynamically;
i am getting table name in a comboBox and i want to add as many checkboxes as the number of columns the selected table have.
pls help me out;

推荐答案

嗨Kapilk,



只需使用数组。你从组合框中读取列数,然后创建一个JCheckBox数组:



Hi Kapilk,

Just use an array. You read the number of of columns from the combobox and then create an array of JCheckBox:

int numberCheckBox = ...
JCheckBox[] checkBoxList = new JCheckBox[numberCheckBox];

for(int i = 0; i < numberCheckBox; i++) {
    checkBoxList[i] = new JCheckBox("CheckBox" + i);
    yourPanel.add(checkBoxList[i]);
}





我希望这会对你有所帮助。



Beste问候,

菲利普



I hope this helps you.

Beste regards,
Filipe


使用此代码,我自己编写并且有效:

Use this code, I have written it myself and it works:
import java.awt.BorderLayout;
import java.util.ArrayList;

import javax.swing.BoxLayout;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.border.TitledBorder;


public class Tabel extends JFrame{

	/**
	 * @param args
	 */
	int numberOfCheckBoxes=0;  //this is used to get the number of items in the combobox
	JCheckBox[] checkBoxList;   //the list that contains the checkboxes
	
	String[] columns=new String[]{"Column 1","Column 2","Column 3"};  //something for the table to display
	Object data[][]={
			{true,new Integer(10),new String("String 1")},
			{false,new Integer(20),new String("String 2")},
			{true,new Integer(30),new String("String 3")}
	};

	JTable table;
	JPanel firstPanel=new JPanel();  //this is just for gui to look better
	JPanel secondPanel=new JPanel();
	
	@SuppressWarnings("unchecked")
	public void initialize(){
		
		table=new JTable(data,columns);
		this.setTitle("Tabel");
		this.setVisible(true);
		this.setLocationRelativeTo(null);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setSize(500,200);
		
		
		firstPanel.setLayout(new BoxLayout(firstPanel,BoxLayout.Y_AXIS));
		firstPanel.setBorder(new TitledBorder("Table"));
		
		
		secondPanel.setLayout(new BoxLayout(secondPanel,BoxLayout.Y_AXIS));
		secondPanel.setBorder(new TitledBorder("GUI Items"));
		
		firstPanel.add(table.getTableHeader(),BorderLayout.PAGE_START); //if you don't use this line, the column names won't be displayed in the window

		firstPanel.add(table);
						
		ArrayList<string> columnNames=new ArrayList<string>(); //list for containg the column names
		
		for(int i=0;i<table.getcolumncount();i++){
		columnNames.add(table.getColumnName(i));
		}
		
		JComboBox<?> comboBox=new JComboBox(columnNames.toArray());		
		numberOfCheckBoxes=comboBox.getItemCount();  //get the number of items in combobox
		
		secondPanel.add(comboBox);
		
		checkBoxes();  //method for creating the checkboxes
		
		this.setLayout(new BoxLayout(this.getContentPane(),BoxLayout.Y_AXIS));
		this.add(firstPanel);
		this.add(secondPanel);
		
		
	}
	
	void checkBoxes(){
		checkBoxList=new JCheckBox[numberOfCheckBoxes];
		
		for(int i=0;i<checkboxlist.length;++i){>
			checkBoxList[i]=new JCheckBox("CheckBox #"+i); //create the check boxes and add them to the jframe
			secondPanel.add(checkBoxList[i]);
						
		}
		
		
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
			Tabel program=new Tabel();
			program.initialize();
	}

}


</string></string>





祝你好运。



我使用了Filipe显示的想法。



Best regards.

I have used the idea that Filipe displayed.


这篇关于如何在java Swing中创建动态jCheckBox的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆