【前端】table中显示布尔值、动态确定按钮状态

记录一下今天在写前端页面时碰到的几个问题,分别是:
1、前端table中需要展示的数据中有几项为布尔值,而页面上不能直接以字符串的形式进行显示;
2、需要根据数据状态确定是否能对该行数据对应的记录进行操作,因为部分数据只是为了展示后台对应的运行状态,其对应的操作按钮应禁用以防止前端误操作;
3、table表头及内容对齐问题;

1、问题1解决方案:

该问题解决方案来自csdn_jy的文章Element-ui中Table表中el-table-column列数据的布尔值回填:
利用table提供的formatter属性,具体操作为:

<el-table :data="rows" ref="datagrid" border="true" highlight-current-row="true" style="width: 100%">
              
                <el-table-column prop="tableId" label="表id" :show-overflow-tooltip="true">                    
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Java添加一个动态,首先你需要使用`JButton`类创建一个按对象,然后将其添加到`JTable`的每一行。以下是一个简单的示例代码来实现这个功能: ```java import javax.swing.*; import javax.swing.table.DefaultTableModel; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class DynamicButtonInTable extends JFrame { private JTable table; private DefaultTableModel model; public DynamicButtonInTable() { setTitle("Dynamic Button in Table"); setDefaultCloseOperation(EXIT_ON_CLOSE); setSize(500, 400); // create table model with column names model = new DefaultTableModel(new Object[]{"Name", "Age", "Button"}, 0); // create table with the above model table = new JTable(model); // create a button column renderer and editor TableColumn buttonColumn = table.getColumnModel().getColumn(2); buttonColumn.setCellRenderer(new ButtonRenderer()); buttonColumn.setCellEditor(new ButtonEditor(new JCheckBox())); // add some data to the model model.addRow(new Object[]{"John", 25, "Click Me"}); model.addRow(new Object[]{"Mary", 30, "Click Me"}); model.addRow(new Object[]{"Bob", 35, "Click Me"}); // add the table to a scroll pane and to the frame JScrollPane scrollPane = new JScrollPane(table); getContentPane().add(scrollPane); setVisible(true); } public static void main(String[] args) { new DynamicButtonInTable(); } // button column renderer class ButtonRenderer extends JButton implements TableCellRenderer { public ButtonRenderer() { setOpaque(true); } public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { setText((value == null) ? "" : value.toString()); return this; } } // button column editor class ButtonEditor extends DefaultCellEditor { protected JButton button; private String label; private boolean isPushed; public ButtonEditor(JCheckBox checkBox) { super(checkBox); button = new JButton(); button.setOpaque(true); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { fireEditingStopped(); } }); } public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { if (isSelected) { button.setForeground(table.getSelectionForeground()); button.setBackground(table.getSelectionBackground()); } else { button.setForeground(table.getForeground()); button.setBackground(UIManager.getColor("Button.background")); } label = (value == null) ? "" : value.toString(); button.setText(label); isPushed = true; return button; } public Object getCellEditorValue() { if (isPushed) { // perform button click action here JOptionPane.showMessageDialog(button, label + " button clicked"); } isPushed = false; return label; } public boolean stopCellEditing() { isPushed = false; return super.stopCellEditing(); } protected void fireEditingStopped() { super.fireEditingStopped(); } } } ``` 这个例子,我们创建了一个`JTable`并添加了一个动态列。我们使用`DefaultTableModel`来存储数据和按的文本。我们还创建了一个`ButtonRenderer`类来渲染按列,并且使用了`ButtonEditor`类来编辑按列。在`ButtonEditor`类,我们添加了一个`ActionListener`来处理按点击事件。 当你运行这个程序时,你将看到一个表格,每一行都有一个按列,你可以点击按并处理相应的事件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值