java如何在JTable 中的第一列加单选按钮(表示选中这一行),并可以动态添加行
你要设计的这个单选按钮应该不是说一个表里同时只能选一行吧。。。那你最好还是用checkbox复选框的显示方法替代单选按钮吧。。。因为单选按钮是没有办法点击取消的,一旦选中,就没有办法取消了。。。多蛋疼啊。。。
创新互联公司服务项目包括北海网站建设、北海网站制作、北海网页制作以及北海网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,北海网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到北海省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
给你一个复选框的例子吧,一样很好用的。
不多说了,直接上代码:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
public class CheckedBoxTabel extends JFrame {
private JTable table;
private JScrollPane sPane;
private DefaultTableModel model;
private JButton button, button2;
private JPanel pane;
public CheckedBoxTabel() {
// TODO Auto-generated constructor stub
//窗口设置,不用管
this.setSize(400, 400);
Toolkit toolkit = Toolkit.getDefaultToolkit();
Dimension scrnsize;
scrnsize = toolkit.getScreenSize();
setLocation(scrnsize.width / 2 - getWidth() / 2, scrnsize.height / 2
- getHeight() / 2);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
//table的model设置
model = new DefaultTableModel(new Object[][] {}, new String[] { "论文ID",
"论文标题", "是否提交", "论文负责人" });
//table加载model
table = new JTable(model);
//将第三列的显示设为checkbox类型,楼主想设置哪列自己决定
//但是记得该列的值是Boolean型的
TableColumn tc = table.getColumnModel().getColumn(2);
tc.setCellEditor(table.getDefaultEditor(Boolean.class));
tc.setCellRenderer(table.getDefaultRenderer(Boolean.class));
sPane = new JScrollPane();
sPane.setViewportView(table);
//添加增添一行按钮的事件处理
button = new JButton("加一行");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
model = (DefaultTableModel) table.getModel();
Object[] data = new Object[4];
data[0] = "1";
data[1] = "论文";
data[2] = new Boolean(false);
data[3] = "张三";
model.addRow(data);
/*
//或者也可以用
model.addRow(new Object[]{"1","论文",new Boolean(false),"张三"});
*/
table.setModel(model);
}
});
//添加显示所选行的按钮的事件处理
button2 = new JButton("显示所选行");
button2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
model = (DefaultTableModel) table.getModel();
int count = model.getRowCount();
for (int i = 0; i count; i++) {
if (model.getValueAt(i, 2).equals(true)){
//在这里添加你要处理行的方法
System.out.println("第" + (i + 1) + "行被选中");
}
}
}
});
pane = new JPanel();
pane.setLayout(new FlowLayout());
pane.add(button);
pane.add(button2);
this.add(sPane, BorderLayout.CENTER);
this.add(pane, BorderLayout.SOUTH);
}
public static void main(String[] args) {
new CheckedBoxTabel().setVisible(true);
}
}
我设计的测试结果是在控制台输出的,楼主可以自己修改:
第4行被选中
第7行被选中
第8行被选中
第10行被选中
怎样实现java代码的动态加载
1.将你这段字符串输出到一个文件里,用Java类文件的方式命名。
2.调用外部javac命令将该文件编译。
3.用类加载器(ClassLoad)动态加载新的class文件并用Class.forName()注册该类,然后就可以正常使用了。
上面的每一步都能在baidu中找到实现方法,自己发挥吧。
在spinner(下拉列表)中动态添加一个选项,如何在java代码中设置新增项为默认选中项
那你必须记住你添加的选项 在列表中的下标 这个不是很难把,然后调用下面的方法
this.spinner.setSelection(下标);
Java项目添加文件夹选项是什么意思?
Java项目添加文件夹选项的意思是:你的java代码写的不全,必须要把空文件夹的情况写入才行。
java项目创建包以及调试运行的方法:
1、首先我们在桌面找到eclipse,双击将其打开。
2、在这里我已经创建了一个名为helloworld的java项目,但其下还为创建任何的包以及文件。下边我们开始创建第一个包路径。一般来说java代码都是写在src文件夹下,选中src右击鼠标创建一个包路径,选择new然后选择package。
3、在创建包路径界面,我们需要给我们的包进行命名。命名规则一般为域名.公司名.工程名.模块名……假如需要建立一个百度地图的应用包ditu.baidu.com,那我们的包名即为com.baidu.ditu。命名结束后点击Finish。
4、我们可以看到包的路径已经建好了。
5、接下来我们需要在包里面建立java文件,右击包名称,选择new-〉class。
6、java文件的命名规则为单词首字母大写,如果多个单词则每个首字母都需要大写。在新建java文件页面,我们看到下方有个设置项为public static void main (string[] args),这个选项是对该java类自动创建一个主函数。我们将其选中,并点击Finish。
7、可以看到在新创建的这个类中已经自动创建了一个主函数,以及类的包路径都已经自动的引入。在左侧试图中可以查看到新创建的java类。
8、那eclipse中如何对java工程进行调试呢?这里我们通过一个最简单也是初学者入门就接触的一个实例叫'hell oworld!'。我们在主程序中添加一行代码,也是最常见的输出命令。改行代码的意思为当程序运行时将‘测试输出!’输出到控制台。
9、接下来我们再java类中右击鼠标,选择run as-〉java application。
10、接下来我们可以看到‘测试输出!’的字样在控制台打印出来了。这样一个完整的java调试就结束了。
分享标题:Java代码动态添加选项 java类动态添加属性
文章链接:http://lswzjz.com/article/hhdpjj.html