java Swing 在JTable表格单元中加入button按钮,如何给单元格添加自定义按钮?

这篇具有很好参考价值的文章主要介绍了java Swing 在JTable表格单元中加入button按钮,如何给单元格添加自定义按钮?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

用纯java做软件开发,就会用到GUI图形界面,而GUI的核心技术就是SWING和AWT。本人在软件开发中常用的便是swing,最近开发做了很多新的供能,怕时间一久就忘了,于是抽空写在这里记录下来。

本篇文章讲的是怎么把单元格重新渲染为按钮,并且触发按钮的监听事件

在JTable中,有渲染器和编辑器两种。如果只是单纯的渲染样式,则调用setCellRenderer()函数,如果需要触发渲染后组件的事件,则还需要调用setCellEditor()函数,特别说明:渲染器只能改变样式,无法触发监听事件。话不多说,直接看代码。


import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.DefaultCellEditor;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableCellRenderer;

public class Demo {

	public static void main(String[] args) {
		JFrame frame = new JFrame();
		JTable table = new JTable();
		DefaultTableModel model = new DefaultTableModel();
		String[] columnIdentifiers = {"one", "two", "three"};//表头
		String[][] data = new String[5][3];
		for (int i = 0; i < 5; i++) {
			for (int j = 0; j < 3; j++) {
				if(j == 2) {
					continue;
				}
				data[i][j] = "asd";
			}
		}
		model.setDataVector(data, columnIdentifiers);
		table.setModel(model);
		
		table.getColumnModel().getColumn(2).setCellRenderer(new TableCellRendererButton());
		table.getColumnModel().getColumn(2).setCellEditor(new TableCellEditorButton());
		
		JScrollPane scrollPane = new JScrollPane(table);
		frame.add(scrollPane);
		frame.setBounds(100, 100, 300, 200);
		frame.setVisible(true);
	}
	
	
	
}

class TableCellRendererButton implements TableCellRenderer{
	
	

	@Override
	public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus,
			int row, int column) {
		JButton button = new JButton("按钮");
		return button;
	}
	
}

class TableCellEditorButton extends DefaultCellEditor{
	
	private JButton btn;
	public TableCellEditorButton() {
		super(new JTextField());
		//设置点击一次就激活,否则默认好像是点击2次激活。
		this.setClickCountToStart(1);
		btn = new JButton("按钮");
		btn.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				System.out.println("按钮事件触发----");
				
			}
		});
		
	}
	@Override
	public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
		
		return btn;
	}
	
	
}

运行后效果图如下:

java Swing 在JTable表格单元中加入button按钮,如何给单元格添加自定义按钮?

 点击按钮时,会触发事件,在控制台提醒。文章来源地址https://www.toymoban.com/news/detail-513341.html

到了这里,关于java Swing 在JTable表格单元中加入button按钮,如何给单元格添加自定义按钮?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • android去除按钮(Button)背景、边框,使按钮背景透明【创建无边框按钮】

    android 中的按钮是最常用到的一种控件,因此网上对于修改按钮样式的问题也非常多。在自定义样式中,有一个常见的需求就是去除按钮背景。比如下图的情况: 左边的按钮图标可以使用 ImageButton 或 ImageView 来加载一个透明背景的icon。而右边只显示文字的按钮则只能使用普通

    2024年02月02日
    浏览(59)
  • Flutter组件--按钮(Button)组件

      属性  说明 onPressed 必填参数,按下按钮时触发的回调,接收一个方法,传null表示按钮禁用,会显示禁用相关样式 child 子组件 style 通过ButtonStyle装饰 ButtonStylee里面的常用的参数 属性名称 值类型  属性值 foregroundColor Color 文本颜色 backgroundColor Color 按钮的颜色 shadowColor Col

    2024年02月14日
    浏览(36)
  • 微信小程序:修改按钮BUTTON尺寸

      微信小程序当中通过wxss来设置button的宽高值并不起效果,而size属性却只有两个合法值,当我们想要自定义大小时则: 在 标签中直接写 style即可: (当前为开发者模式无法进入会话,真机调试即可看到效果) 

    2024年02月11日
    浏览(85)
  • 微信小程序button按钮去除边框

    今天在小程序开发中想要去除按钮的边框,直接使用 border: none 不起作用,选择器后加一个::after伪元素才行。 例: button:: after{ border: none }

    2024年02月06日
    浏览(58)
  • 【Unity】Button基础-按钮更换图片样式

    话说,今天修改了一下项目中的内容,发现按钮不怎么好看,想用图片的方式改一改,然后点开Button,忽然发现好多内容都忘记了。。。 Transition(过渡方式):按钮在状态改变时自身的过渡方式: Color Tint(颜色改变)  Sprite Swap(图片切换)  Animation(执行动画)(后面有

    2023年04月14日
    浏览(44)
  • 15. 【Android教程】按钮 Button/ImageButton

    在前面两章我们讲了 TextView,它是一个纯输出的控件;而 EditText 在 TextView 基础之上加入了简单的输入功能;今天要讲的 Button 是一个和用户互动感很强的控件,从今往后不再是单纯的文本展示,我们可以通过 TextView、EditText 再加上 Button 做出非常多有很意思的功能。ImageButt

    2024年04月14日
    浏览(32)
  • Python GUI设计——Button功能按钮

    目录 1.简介 1.1定时程序设计 1.2颜色选择程序设计 2.使用Lambda表达式 3.建立含图像的功能按钮 4.简易计算器按钮设计 5.设计鼠标光标在功能按钮上的的形状 功能按钮也称为按钮,在窗口组件中可以设计在单击功能按钮时,执行某一个特定的动作,这个动作也称为callback方法,

    2024年02月09日
    浏览(29)
  • Android里面,button按钮怎么设置圆角?

    在Android中,可以通过创建一个自定义的Drawable XML文件来实现给Button设置圆角的效果。以下是创建圆角按钮的步骤: 在 res/drawable 文件夹下,创建一个新的XML文件,例如 rounded_button.xml 。 在 rounded_button.xml 文件中,添加以下代码: 在这里,你可以自定义圆角的半径、按钮的颜色

    2024年02月08日
    浏览(41)
  • Android学习之路(4) UI控件之Button (按钮)与 ImageButton (图像按钮)

    本节引言: 今天给大家介绍的Android基本控件中的两个按钮控件,Button普通按钮和ImageButton图像按钮; 其实ImageButton和Button的用法基本类似,至于与图片相关的则和后面ImageView相同,所以本节 只对Button进行讲解,另外Button是TextView的子类,所以TextView上很多属性也可以应用到

    2024年02月12日
    浏览(44)
  • Android学习之路(5) UI控件之Button (按钮)与 ImageButton (图像按钮)

    本节引言: 今天给大家介绍的Android基本控件中的两个按钮控件,Button普通按钮和ImageButton图像按钮; 其实ImageButton和Button的用法基本类似,至于与图片相关的则和后面ImageView相同,所以本节 只对Button进行讲解,另外Button是TextView的子类,所以TextView上很多属性也可以应用到

    2024年02月12日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包