java畫表格怎麼畫(繪製表格怎麼畫)

本文目錄一覽:

怎樣使用java swing畫一個表格,把輸出顯示到表格上,而且每10秒自動刷新一次

使用swing的JTable作為表格顯示數據

JTable table = new JTable(new DefaultTableModel(rowData, columnNames))

在參數里填入列數據和列名稱

把table放到一個JFrame里顯示

使用線程或者Timer定時更新數據

使用((DefaultTableModel) table.getModel()).fireTableDataChanged();讓頁面刷新

import java.awt.BorderLayout;

import java.util.Timer;

import java.util.TimerTask;

import java.util.Vector;

import javax.swing.JFrame;

import javax.swing.JScrollPane;

import javax.swing.JTable;

import javax.swing.SwingWorker;

import javax.swing.table.DefaultTableModel;

public class test extends JFrame {

private static final long serialVersionUID = -4892684184268025880L;

private static final Timer time = new Timer(“test”);

private VectorVectorObject rowData = new VectorVectorObject();

private JTable table;

private int count = 0;

public test() {

super(“表格”);

this.setSize(400, 400);

this.setLayout(new BorderLayout());

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

VectorString columnNames = new VectorString();

columnNames.add(“統計項”);

columnNames.add(“數目”);

table = new JTable(new DefaultTableModel(rowData, columnNames));

this.add(new JScrollPane(table), BorderLayout.CENTER);

time.schedule(new TimerTask() {

@Override

public void run() {

update();

}

}, 0, 1000);

}

private void update() {

new SwingWorkerObject, Object() {

protected Object doInBackground() throws Exception {

rowData.clear();

for (int i = 0; i 4; i++) {

VectorObject info = new VectorObject();

info.add(“測試”);

info.add(count);

rowData.add(info);

}

count++;

return null;

}

protected void done() {

((DefaultTableModel) table.getModel()).fireTableDataChanged();

}

}.execute();

}

public static void main(String args[]) {

new test().setVisible(true);

}

}

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語言製作表格

這個例子給你參考:

//簡單JTable編製員工檔案

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

class TableDemo extends JFrame

{

public TableDemo()

{

super(“員工檔案表”);

String[] columnNames={“姓名”,”職務”,”電話”,”月薪”,”婚否”};

Object[][]data={

{“李強”,”經理”,”059568790231″,new Integer(5000),new Boolean(true)},

{“吳虹”,”秘書”,”059569785321″,new Integer(3500),new Boolean(true)},

{“陳衛東”,”主管”,”059565498732″,new Integer(4500),new Boolean(false)},

{“歐陽建”,”保安”,”059562796879″,new Integer(2000),new Boolean(true)},

{“施樂樂”,”銷售”,”059563541298″,new Integer(4000),new Boolean(false)}

};

JTable table=new JTable(data,columnNames);

table.setPerferredScrollableViewportSize(new Dimension(500,70));

JScrollPane scrollPane=new JScrollPane(table);

getContentPane().add(scrollPane,BorderLayout.CENTER);

addWindowListener(new WindowAdapter(){

public void windowClosing(WindowEvent e)

{System.exit(0);}});

pack();

setVisible(true);

}

public class Example5_9

{

public static void main(String[] args)

{

TableDemo frame=new TableDemo();

}

}

}

有問題的話留言

如何用 Java 繪製表格

JTable單元格是由單元格繪製器繪製出來的,這是一些執行TableCellRenderer接口的類。TableCellRenderer接口定義了唯一的getTableCellRendererComponent方法,返回對Component的引用,二Component則用來實現繪圖操作。但是因為定義單獨的類來執行TableCellRenderer比較方便,而且可以實現繪圖操作,所以TablecellRenderer通常只返回對自己的引用。下面是傳遞給getTableCellRendererComponent()方法的幾個參數:

對JTable的引用,含有要繪製的單元格

對單元格值的引用

boolean標記,用來表示單元格是否被選中

boolean標記,用來表示單元格是否為輸入焦點

繪製的單元格的行索引號

繪製的單元格的列索引號

java畫表格

這裡問題不是很清楚,你說的表格是什麼意思?

——–

| | |

———-

的這種格子?還是HTML之類的markup language,讓其他軟件產生表格?

java中怎樣畫出3行3列的、可以填充字符的表格?

計算器

package hkc_1205;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.GridLayout;

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.JTextField;

public class rot13input extends JFrame implements ActionListener {

//public static void main (String[] arags)

/** 計算器上的鍵的顯示名字 */

private final String[] KEYS = { “7”, “8”, “9”, “/”, “sqrt”, “4”, “5”, “6”,

“*”, “%”, “1”, “2”, “3”, “-“, “1/x”, “0”, “+/-“, “.”, “+”, “=” };

/** 計算器上的功能鍵的顯示名字 */

private final String[] COMMAND = ;

/** 計算器左邊的M的顯示名字 */

private final String[] M = ;

/** 計算器上鍵的按鈕 */

private JButton keys[] = new JButton[KEYS.length];

/** 計算器上的功能鍵的按鈕 */

private JButton commands[] = new JButton[COMMAND.length];

/** 計算器左邊的M的按鈕 */

private JButton m[] = new JButton[M.length];

/** 計算結果文本框 */

private JTextField resultText = new JTextField(“0”);

// 標誌用戶按的是否是整個表達式的第一個數字,或者是運算符後的第一個數字

private boolean firstDigit = true;

// 計算的中間結果。

private double resultNum = 0.0;

// 當前運算的運算符

private String operator = “=”;

// 操作是否合法

private boolean operateValidFlag = true;

/**

* 構造函數

*/

public rot13input(){

super();

//初始化計算器

init();

//設置計算器的背景顏色

this.setBackground(Color.LIGHT_GRAY);

this.setTitle(“計算器”);

//在屏幕(500, 300)坐標處顯示計算器

this.setLocation(500, 300);

//不許修改計算器的大小

this.setResizable(false);

//使計算器中各組件大小合適

this.pack();

}

/**

* 初始化計算器

*/

private void init() {

// 文本框中的內容採用右對齊方式

resultText.setHorizontalAlignment(JTextField.RIGHT);

// 不允許修改結果文本框

resultText.setEditable(false);

// 設置文本框背景顏色為白色

resultText.setBackground(Color.white);

//初始化計算器上鍵的按鈕,將鍵放在一個畫板內

JPanel calckeysPanel = new JPanel();

//用網格布局器,4行,5列的網格,網格之間的水平方向間隔為3個象素,垂直方向間隔為3個象素

calckeysPanel.setLayout(new GridLayout(4, 5, 3, 3));

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

keys[i] = new JButton(KEYS[i]);

calckeysPanel.add(keys[i]);

keys[i].setForeground(Color.blue);

}

//運算符鍵用紅色標示,其他鍵用藍色表示

keys[3].setForeground(Color.red);

keys[8].setForeground(Color.red);

keys[13].setForeground(Color.red);

keys[18].setForeground(Color.red);

keys[19].setForeground(Color.red);

//初始化功能鍵,都用紅色標示。將功能鍵放在一個畫板內

JPanel commandsPanel = new JPanel();

//用網格布局器,1行,3列的網格,網格之間的水平方向間隔為3個象素,垂直方向間隔為3個象素

commandsPanel.setLayout(new GridLayout(1, 3, 3, 3));

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

commands[i] = new JButton(COMMAND[i]);

commandsPanel.add(commands[i]);

commands[i].setForeground(Color.red);

}

//初始化M鍵,用紅色標示,將M鍵放在一個畫板內

JPanel calmsPanel = new JPanel();

//用網格布局管理器,5行,1列的網格,網格之間的水平方向間隔為3個象素,垂直方向間隔為3個象素

calmsPanel.setLayout(new GridLayout(5, 1, 3, 3));

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

m[i] = new JButton(M[i]);

calmsPanel.add(m[i]);

m[i].setForeground(Color.red);

}

//下面進行計算器的整體布局,將calckeys和command畫板放在計算器的中部,

//將文本框放在北部,將calms畫板放在計算器的西部。

//新建一個大的畫板,將上面建立的command和calckeys畫板放在該畫板內

JPanel panel1 = new JPanel();

//畫板採用邊界布局管理器,畫板里組件之間的水平和垂直方向上間隔都為3象素

panel1.setLayout(new BorderLayout(3, 3));

panel1.add(“North”, commandsPanel);

panel1.add(“West”, calckeysPanel);

//建立一個畫板放文本框

JPanel top = new JPanel();

top.setLayout(new BorderLayout());

top.add(“Center”, resultText);

//整體布局

getContentPane().setLayout(new BorderLayout(3, 5));

getContentPane().add(“North”, top);

getContentPane().add(“Center”, panel1);

getContentPane().add(“West”, calmsPanel);

//為各按鈕添加事件偵聽器

//都使用同一個事件偵聽器,即本對象。本類的聲明中有implements ActionListener

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

keys[i].addActionListener(this);

}

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

commands[i].addActionListener(this);

}

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

m[i].addActionListener(this);

}

}

/**

* 處理事件

*/

public void actionPerformed(ActionEvent e) {

//獲取事件源的標籤

String label = e.getActionCommand();

if (label.equals(COMMAND[0])){

//用戶按了”Backspace”鍵

handleBackspace();

} else if (label.equals(COMMAND[1])) {

//用戶按了”CE”鍵

resultText.setText(“0”);

} else if (label.equals(COMMAND[2])){

//用戶按了”C”鍵

handleC();

} else if (“0123456789.”.indexOf(label) = 0) {

//用戶按了數字鍵或者小數點鍵

handleNumber(label);

// handlezero(zero);

} else {

//用戶按了運算符鍵

handleOperator(label);

}

}

/**

* 處理Backspace鍵被按下的事件

*/

private void handleBackspace() {

String text = resultText.getText();

int i = text.length();

if (i 0) {

//退格,將文本最後一個字符去掉

text = text.substring(0, i – 1);

if (text.length() == 0) {

//如果文本沒有了內容,則初始化計算器的各種值

resultText.setText(“0”);

firstDigit = true;

operator = “=”;

} else {

//顯示新的文本

resultText.setText(text);

}

}

}

/**

* 處理數字鍵被按下的事件

* @param key

*/

private void handleNumber(String key) {

if (firstDigit) {

//輸入的第一個數字

resultText.setText(key);

} else if ((key.equals(“.”)) (resultText.getText().indexOf(“.”) 0)){

//輸入的是小數點,並且之前沒有小數點,則將小數點附在結果文本框的後面

resultText.setText(resultText.getText() + “.”);

} else if (!key.equals(“.”)) {

//如果輸入的不是小數點,則將數字附在結果文本框的後面

resultText.setText(resultText.getText() + key);

}

//以後輸入的肯定不是第一個數字了

firstDigit = false;

}

/**

* 處理C鍵被按下的事件

*/

private void handleC() {

//初始化計算器的各種值

resultText.setText(“0”);

firstDigit = true;

operator = “=”;

}

/**

* 處理運算符鍵被按下的事件

* @param key

*/

private void handleOperator(String key) {

if (operator.equals(“/”)) {

//除法運算

//如果當前結果文本框中的值等於0

if (getNumberFromText() == 0.0){

//操作不合法

operateValidFlag = false;

resultText.setText(“除數不能為零”);

} else {

resultNum /= getNumberFromText();

}

} else if (operator.equals(“1/x”)) {

//倒數運算

if (resultNum == 0.0){

//操作不合法

operateValidFlag = false;

resultText.setText(“零沒有倒數”);

} else {

resultNum = 1 / resultNum;

}

} else if (operator.equals(“+”)){

//加法運算

resultNum += getNumberFromText();

} else if (operator.equals(“-“)){

//減法運算

resultNum -= getNumberFromText();

} else if (operator.equals(“*”)){

//乘法運算

resultNum *= getNumberFromText();

} else if (operator.equals(“sqrt”)) {

//平方根運算

resultNum = Math.sqrt(resultNum);

} else if (operator.equals(“%”)){

//百分號運算,除以100

resultNum = resultNum / 100;

} else if (operator.equals(“+/-“)){

//正數負數運算

resultNum = resultNum * (-1);

} else if (operator.equals(“=”)){

//賦值運算

resultNum = getNumberFromText();

}

if (operateValidFlag) {

//雙精度浮點數的運算

long t1;

double t2;

t1 = (long) resultNum;

t2 = resultNum – t1;

if (t2 == 0) {

resultText.setText(String.valueOf(t1));

} else {

resultText.setText(String.valueOf(resultNum));

}

}

//運算符等於用戶按的按鈕

operator = key;

firstDigit = true;

operateValidFlag = true;

}

/**

* 從結果文本框中獲取數字

* @return

*/

private double getNumberFromText() {

double result = 0;

try {

result = Double.valueOf(resultText.getText()).doubleValue();

} catch (NumberFormatException e){

}

return result;

}

public static void main(String args[]) {

rot13input calculator1 = new rot13input();

calculator1.setVisible(true);

calculator1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

}

原創文章,作者:QLAF8,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/128493.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
QLAF8的頭像QLAF8
上一篇 2024-10-03 23:25
下一篇 2024-10-03 23:25

相關推薦

  • java client.getacsresponse 編譯報錯解決方法

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

    編程 2025-04-29
  • Java JsonPath 效率優化指南

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

    編程 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

發表回復

登錄後才能評論