提交 f0cfe80b 编写于 作者: 御承扬

Update

上级 b43780f3
......@@ -2,7 +2,7 @@
<project version="4">
<component name="ChangeListManager">
<list default="true" id="4e65795a-6659-4829-a5e6-120206826e71" name="Default Changelist" comment="">
<change afterPath="$PROJECT_DIR$/src/高级Swing组件/JTableTest.java" afterDir="false" />
<change afterPath="$PROJECT_DIR$/src/高级Swing组件/TableModelTest.java" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
</list>
<list id="cbcb3066-613e-44bd-84c2-b0cf22cc5a78" name="New changelist" comment="New changelist" />
......@@ -129,7 +129,7 @@
</list>
</option>
</component>
<component name="RunManager" selected="应用程序.JTableTest">
<component name="RunManager" selected="应用程序.TableModelTest">
<configuration name="FileFilterTest" type="Application" factoryName="应用程序" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="高级Swing组件.FileFilterTest" />
<module name="IDEA_JAVA" />
......@@ -182,8 +182,8 @@
<option name="Make" enabled="true" />
</method>
</configuration>
<configuration name="JToolBarTest" type="Application" factoryName="应用程序" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="高级Swing组件.JToolBarTest" />
<configuration name="TableModelTest" type="Application" factoryName="应用程序" temporary="true" nameIsGenerated="true">
<option name="MAIN_CLASS_NAME" value="高级Swing组件.TableModelTest" />
<module name="IDEA_JAVA" />
<extension name="coverage">
<pattern>
......@@ -197,11 +197,11 @@
</configuration>
<recent_temporary>
<list>
<item itemvalue="应用程序.TableModelTest" />
<item itemvalue="应用程序.JTableTest" />
<item itemvalue="应用程序.JProgressBarTest" />
<item itemvalue="应用程序.FileFilterTest" />
<item itemvalue="应用程序.JFileChooserTest" />
<item itemvalue="应用程序.JToolBarTest" />
</list>
</recent_temporary>
</component>
......@@ -313,14 +313,7 @@
<workItem from="1565180451307" duration="1274000" />
<workItem from="1565226009540" duration="5206000" />
<workItem from="1565308932531" duration="46000" />
<workItem from="1565309017412" duration="2979000" />
</task>
<task id="LOCAL-00027" summary="Update">
<created>1561297454142</created>
<option name="number" value="00027" />
<option name="presentableId" value="LOCAL-00027" />
<option name="project" value="LOCAL" />
<updated>1561297454142</updated>
<workItem from="1565309017412" duration="5703000" />
</task>
<task id="LOCAL-00028" summary="Update">
<created>1561361449155</created>
......@@ -658,7 +651,14 @@
<option name="project" value="LOCAL" />
<updated>1565233358615</updated>
</task>
<option name="localTasksCounter" value="76" />
<task id="LOCAL-00076" summary="Update">
<created>1565316542572</created>
<option name="number" value="00076" />
<option name="presentableId" value="LOCAL-00076" />
<option name="project" value="LOCAL" />
<updated>1565316542572</updated>
</task>
<option name="localTasksCounter" value="77" />
<servers />
</component>
<component name="TodoView" selected-index="3">
......
package 高级Swing组件;
// !/usr/bin/env jdk1.8
// encoding:utf-8
//@software:IntelliJ IDEA
//@pack:高级Swing组件
//@user:彭友聪
//@date:2019/08/09
//@time:上午 10:11
//@project:IDEA_JAVA
//@file:TableModelTest.java
//Author:御承扬
//email:2923616405@qq.com
import javax.swing.*;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class TableModelTest extends JFrame {
private DefaultTableModel tableModel; // 定义表格模型对象
private JTable table; // 表格对象
private JTextField aTextField, bTextField; // 面板下面的两个输入框
private JButton addButton, delButton, updButton; // 增删改三个按钮
private TableModelTest() {
super();
setTitle( "维护表格模型示例" );
setBounds( 100, 100, 500, 375 );
setDefaultCloseOperation( WindowConstants.EXIT_ON_CLOSE );
String[] columnNames = {"A", "B"};
String[][] tableValues = {{"A1", "B1"}, {"A2", "B2"}, {"A3", "B3"}};
tableModel = new DefaultTableModel( tableValues, columnNames );
table = new JTable( tableModel );
JScrollPane scrollPane = new JScrollPane( table );
getContentPane().add( scrollPane, BorderLayout.CENTER );
buttonInit(); // 按钮初始化
addListener(); // 给组件添加监听事件
}
private void buttonInit() {
final JPanel panel = new JPanel();
getContentPane().add( panel, BorderLayout.SOUTH );
panel.add( new JLabel( "A: " ) );
aTextField = new JTextField( "A4", 10 );
panel.add( aTextField );
panel.add( new JLabel( "B: " ) );
bTextField = new JTextField( "B4", 10 );
panel.add( bTextField );
addButton = new JButton( "添加" );
updButton = new JButton( "修改" );
delButton = new JButton( "删除" );
panel.add( addButton );
panel.add( updButton );
panel.add( delButton );
}
private void addListener() {
// 为表格模型添加事件监听器
tableModel.addTableModelListener( new TableModelListener() {
@Override
public void tableChanged(TableModelEvent e) {
int type = e.getType(); // 获取事件类型
int row = e.getFirstRow() + 1;
int column = e.getColumn() + 1;
if (type == TableModelEvent.INSERT) {
System.out.println( "此次事件由 插入 触发" );
System.out.println( "此次插入的是第 " + row + " 行,第 " + column + " 列" );
} else if (type == TableModelEvent.UPDATE) {
System.out.println( "此次事件由 修改 触发" );
System.out.println( "此次修改的是第 " + row + " 行,第 " + column + " 列" );
} else if (type == TableModelEvent.DELETE) {
System.out.println( "此次事件由 删除 触发" );
System.out.println( "此次删除的是第 " + row + " 行,第 " + column + " 列" );
} else {
System.out.println( "此次事件由 其他原因 触发" );
}
}
} );
// 添加按钮事件
addButton.addActionListener( new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String[] rowValues = {aTextField.getText(), bTextField.getText() };
// 创建表格行数据
tableModel.addRow( rowValues );
int rowCount = table.getRowCount() + 1;
aTextField.setText( "A " + rowCount );
bTextField.setText( "B " + rowCount );
}
} );
updButton.addActionListener( new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int selectedRow = table.getSelectedRow();
if (selectedRow != -1) {
tableModel.setValueAt( aTextField.getText(), selectedRow, 0 );
tableModel.setValueAt( bTextField.getText(), selectedRow, 1 );
}
}
} );
delButton.addActionListener( new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int selectedRow = table.getSelectedRow();
if (selectedRow != -1) {
tableModel.removeRow( selectedRow );
}
}
} );
}
public static void main(String[] args) {
TableModelTest frame = new TableModelTest();
frame.setVisible( true );
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册