java表格,java表格添加一行

本文目錄一覽:

Java如何做動態表格?

一、動態加載表格

1.首先在html中為表格的添加位置設置id

即是在html的body標籤內部寫一個div標籤表明表格要添加到此div的內部。如下

div id=”tdl”div

2.在javascript中寫添加表格的語句

若在當前html文件中,則寫在script標籤內部,如

代碼如下:

script type=”text/javascript”

document.getElementById(“tbl”).innerHTML=”tabletrtd/td/tr/table” //此處添加的表格可根據自己需要創建

/script

若是通過引入js文件,則在js文件(假設是test.js)中直接寫如下語句

代碼如下:

document.getElementById(“tbl”).innerHTML=”tabletrtd/td/tr/table”

然後再引入自己的html文件

代碼如下:

script type=”text/javascript” src=”test.js”/script

二、 動態添加表格行

1.首先在html中為表格行的添加位置設置id,此位置必須是tbody內部(不是特別準確,但根據我的測試就得到此結論,有其他的方法請留言,謝謝),如下

代碼如下:

table

thead/thead

tfoottfoot //tfoot與thead是與tbody配套使用,但我在寫的時候,沒用也可以。

tbody id=”rows”/tbody

/table

[\s\S ]*\n

2.在javascript內容中,要先創建行和單元格,再在.tbody中添加行,如下

[code]

row=document.createElement(“tr”); //創建行

td1=document.createElement(“tr”); //創建單元格

td1.appendChild(document.createTextNode(“content”)); //為單元格添加內容

row.appendChild(td1); //將單元格添加到行內

document.getElementById(“rows”).append(row); //將行添加到tbody中

java 的表格模型是什麼?

DefaultTableModel是常用的java表格模型。

參考代碼:

package com.dusd;

import java.awt.BorderLayout;

import java.awt.Container;

import java.awt.Point;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.InputEvent;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.util.Arrays;

import java.util.Vector;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.JTextField;

import javax.swing.ListSelectionModel;

import javax.swing.event.TableModelEvent;

import javax.swing.event.TableModelListener;

import javax.swing.table.DefaultTableModel;

import javax.swing.table.JTableHeader;

import javax.swing.table.TableColumnModel;

/**

 * 表格模型事件示例

 * p

 * liA component generally gains the focus when the user clicks it, 

 * or when the user tabs between components, or otherwise interacts 

 * with a component. A component can also be given the focus programmatically,

 * such as when its containing frame or dialog-box is made visible. 

 * The snippet of the codes below shows how to give a particular component  

 * the focus every time the window gains the focus.

 * 

 * @author HAN

 * 

 */

public class TableModel extends JFrame {

/**

 * 

 */

private static final long serialVersionUID = -8581492063632813033L;

public TableModel() {

// TODO Auto-generated constructor stub

final Container container = getContentPane();

VectorString tableColumnNames = new VectorString();

tableColumnNames.add(“A”);

tableColumnNames.add(“B”);

VectorVectorString tableValues = new VectorVectorString();

for (int i = 1; i  5; i++) {

VectorString vector = new VectorString();

vector.add(“A” + i);

vector.add(“B” + i);

tableValues.add(vector);

}

final DefaultTableModel defaultTableModel = new DefaultTableModel(

tableValues, tableColumnNames);

final JTable table = new JTable(defaultTableModel);

JScrollPane scrollPane = new JScrollPane();

scrollPane.setViewportView(table);

container.add(scrollPane, BorderLayout.CENTER);

JPanel panel = new JPanel();

container.add(panel, BorderLayout.SOUTH);

JLabel labelA = new JLabel(“A: “);

final JTextField textFieldA = new JTextField(15);

JLabel labelB = new JLabel(“B: “);

final JTextField textFieldB = new JTextField(15);

JButton buttonAdd = new JButton(“添加”);

JButton buttonDel = new JButton(“刪除”);

JButton buttonDeselected = new JButton(“取消選擇”);

panel.add(labelA);

panel.add(textFieldA);

panel.add(labelB);

panel.add(textFieldB);

panel.add(buttonAdd);

panel.add(buttonDel);

panel.add(buttonDeselected);

buttonAdd.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

int[] selectedRows = table.getSelectedRows(); // table

// 默認情況容許多行選擇

VectorString rowData = new VectorString();

rowData.add(textFieldA.getText());

rowData.add(textFieldB.getText());

if (selectedRows.length == 0) {

defaultTableModel.addRow(rowData);

textFieldA.setText(null);

textFieldB.setText(null);

} else if (selectedRows.length == 1) {

// System.out.println(selectedRows[0]);

defaultTableModel.insertRow(selectedRows[0] + 1, rowData);

textFieldA.setText(null);

textFieldB.setText(null);

} else {

JOptionPane.showMessageDialog(container,

“Your operation is forbidden”, “Warning”,

JOptionPane.WARNING_MESSAGE);

}

}

});

buttonDel.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

int[] selectedRows = table.getSelectedRows(); // table

// 默認情況容許多行選擇

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

// System.out.println(selectedRows[i]);

defaultTableModel.removeRow(selectedRows[i] – i);

}

}

});

buttonDeselected.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

table.clearSelection();

}

});

scrollPane.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

//  System.out.println(“here”);

if (e.getClickCount() == 1

 e.getButton() == MouseEvent.BUTTON1) {

table.clearSelection();

}

}

});

// make the text field focused every time the window is activated

addWindowFocusListener(new WindowAdapter() {

@Override

public void windowGainedFocus(WindowEvent e) {

// TODO Auto-generated method stub

textFieldA.requestFocus(); 

}

});

// **************************************************************

// This is a standard snippet to realize the desired column selection as in

// Excel

// **************************************************************

// row selection mode

table.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

// column selection mode

TableColumnModel tableColumnModel = table.getColumnModel();

tableColumnModel.getSelectionModel().setSelectionMode(

ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);

// allow the column selection (the row selection is allowed by default)

table.setColumnSelectionAllowed(true);

final JTableHeader tableHeader = table.getTableHeader();

tableHeader.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

// TODO Auto-generated method stub

// Extended modifiers represent the state of all modal keys,

// such as ALT, CTRL, META.

if (e.getClickCount() == 1

 e.getButton() == MouseEvent.BUTTON1) {

// Point point = new Point(e.getX(), e.getY());

Point point = new Point(e.getPoint());

int columnNum = tableHeader.columnAtPoint(point);

// System.out.println(columnNum);

int[] selectedColumns = table.getSelectedColumns();

if (selectedColumns.length != 0) {

// System.out.println(“here1”);

// System.out.println(InputEvent.getModifiersExText(e.getModifiersEx()));

if (e.getModifiersEx() == (InputEvent.CTRL_DOWN_MASK)) {

// System.out.println(“ctrl”);

if (Arrays.binarySearch(selectedColumns, columnNum) = 0) {

table.removeColumnSelectionInterval(columnNum,

columnNum);

} else {

table.addColumnSelectionInterval(columnNum,

columnNum);

}

} else if (e.getModifiersEx() == (InputEvent.SHIFT_DOWN_MASK)) {

// System.out.println(“shift”);

table.setColumnSelectionInterval(

selectedColumns[0], columnNum);

} else {

table.setColumnSelectionInterval(columnNum,

columnNum);

}

} else {

// System.out.println(“here2”);

table.setColumnSelectionInterval(columnNum, columnNum);

}

table.setRowSelectionInterval(0, table.getRowCount() – 1);

}

}

});

defaultTableModel.addTableModelListener(new TableModelListener() {

public void tableChanged(TableModelEvent e) {

// TODO Auto-generated method stub

int type = e.getType();

int firstRow = e.getFirstRow();

// int lastRow = e.getLastRow(); // the last row seems to be always equal to the first row

int column = e.getColumn();

switch (type) {

case TableModelEvent.DELETE:

System.out.print(“此次事件由 刪除 行觸發:”);

System.out.println(“此次刪除的是第 ” + firstRow + ” 行”);

break;

case TableModelEvent.INSERT:

System.out.print(“此次事件由 插入 行觸發:”);

System.out.println(“此次插入的是第 ” + firstRow + ” 行”);

break;

case TableModelEvent.UPDATE:

System.out.print(“此次事件由 更新 行觸發:”);

System.out.println(“此次更新的是第 ” + firstRow + ” 行第 ” + column + ” 列”);

break;

default:

System.out.println(“此次事件由 其他原因 觸發”);

}

}

});

}

/**

 * @param args

 */

public static void main(String[] args) {

// TODO Auto-generated method stub

TableModel frame = new TableModel();

frame.setTitle(“表格模型事件示例”);

frame.pack(); //Realize the components.

// frame.setBounds(100, 100, 600, 300);

// textFieldA.requestFocus();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true); //Display the window.

}

}

java表格代碼怎麼寫

java表格就是java swing。

//創建表頭

String[] columnNames = { “First Name”, “Last Name”, “Sport”,

“# of Years”, “Vegetarian” };

//創建顯示數據

Object[][] data = {

{ “Kathy”, “Smith”, “Snowboarding”, new Integer(5),

new Boolean(false) },

{ “John”, “Doe”, “Rowing”, new Integer(3), new Boolean(true) },

{ “Sue”, “Black”, “Knitting”, new Integer(2),

new Boolean(false) },

{ “Jane”, “White”, “Speed reading”, new Integer(20),

new Boolean(true) },

{ “Joe”, “Brown”, “Pool”, new Integer(10), new Boolean(false) } };

/*

* JTable還提供了一個重載的構造方法,傳入兩個Vector

* JTable(Vector rowData, Vector columnNames)

*

*/

final JTable table = new JTable(data, columnNames);

table.setBackground(Color.YELLOW);

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/151237.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-11 13:40
下一篇 2024-11-11 13:40

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發布。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • 使用Treeview顯示錶格

    在web開發中,顯示錶格數據是一項很常見的需求。當我們需要在頁面上顯示大量數據時,除了使用傳統的表格樣式外,還可以使用Treeview這種可摺疊的表格樣式,以便更好地展示數據。本文…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29

發表回復

登錄後才能評論