目录
1.空白窗口的设计(窗体入门)
代码展示
package tuo;
import javax.swing.*;
public class 空白窗口的设计 extends JFrame { //自定义你的空白窗口
public static void main(String[] args) {
// TODO 自动生成的方法存根
new 空白窗口的设计();
}
public 空白窗口的设计() {
setTitle("我的窗口");
setSize(500,500); // 在此处设置你的窗口的长和宽
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
}
//继承方式和非继承方式设计
运行效果:
2.记事本的创建与文本写入(办公自动化)
代码展示
package tuo; // 记得package包名要与你的package包名匹配,你没有包的话可以删掉这段直接运行
import java.io.*; // 导入java的输入输出流
public class 记事本 { // 记事本的创建与文本写入(办公自动化)
public static void main(String args[]){ // java主函数的惯例写法
File file=new File("F:\\","我的文本.txt"); // 此处可以修改你想要读写的记事本文件,可以改成C盘或者D盘
try {
if (!file.exists()) // 如果文件不存在
file.createNewFile(); // 创建新文件
InputStreamReader isr=new InputStreamReader(System.in); //创建文件输入流
BufferedReader br=new BufferedReader(isr); //Read 读 input输出
System.out.println("欢迎来到记事本新建与读写程序!");
System.out.println("请输入你的文本(输入完毕后按回车):");
String str=br.readLine(); //读取用户输入的内容
System.out.println("你输入的内容是:"+str);
System.out.println("已经成功保存在记事本:F:/我的文本.txt");
System.out.println("运行完毕!");
FileWriter fos=new FileWriter(file,true); //创建文件输出流
BufferedWriter bw=new BufferedWriter(fos); //Write 写 file output 输出
bw.write(str); //运行,把读取到的内容写入
br.close(); //关闭文件输入流
bw.close(); //关闭文件输出流
} catch (IOException e) {
e.printStackTrace(); //如果报错,获取错误信息并弹出
}
}
} //注释:TUO图欧君
运行效果
3.计算矩形面积
代码展示
package tuo;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
public class Square {
private JFrame frame;
private JTextField textField;
private JTextField textField_1;
private JTextField textField_2;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Square window = new Square();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public Square() {
initialize();
}
private void initialize() {
frame = new JFrame();
frame.setTitle("就算矩形面积");
frame.setBounds(100, 100, 500, 500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
frame.setResizable(false);
JLabel label = new JLabel("长:");
label.setBounds(27, 31, 27, 41);
frame.getContentPane().add(label);
textField = new JTextField();
textField.setBounds(88, 39, 200, 24);
frame.getContentPane().add(textField);
textField.setColumns(10);
JLabel label_1 = new JLabel("宽:");
label_1.setBounds(27, 85, 27, 41);
frame.getContentPane().add(label_1);
textField_1 = new JTextField();
textField_1.setBounds(88, 93, 200, 24);
frame.getContentPane().add(textField_1);
textField_1.setColumns(10);
JLabel label_2 = new JLabel("面积:");
label_2.setBounds(27, 154, 43, 18);
frame.getContentPane().add(label_2);
textField_2 = new JTextField();
textField_2.setColumns(10);
textField_2.setBounds(88, 151, 200, 24);
frame.getContentPane().add(textField_2);
JButton button = new JButton("计算");
button.setBounds(46, 213, 113, 27);
frame.getContentPane().add(button);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
try {
Double d1 = Double.valueOf(textField.getText());
Double d2 = Double.valueOf(textField_1.getText());
Double d3 = (int) (d1 * d2 * 1000 + 0.5) / 1000.0;
textField_2.setText(d3.toString());
} catch (Exception e2) {
// TODO: handle exception
textField_2.setText("请输入正确的数字!");
}
}
});
}
}
运行效果
4.简易计算器
代码展示
package tuo;
import java.awt.BorderLayout;
import java.awt.event.FocusAdapter;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import javax.swing.*;
public class 简易的计算器 extends JFrame {
private JTextField t1,t2;
private JButton b1,b2;
private JLabel l,result;
private JComboBox op;
public 简易的计算器 (){
this.setTitle("简易的计算器");
this.setSize(500, 250);
this.setResizable(false);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
t1=new JTextField("请输入第一个计算数据");
t2=new JTextField("请输入第二个计算数据");
l=new JLabel("=");
result=new JLabel("计算结果");
String s[]={"+","-","*","/"};
op=new JComboBox(s);
b1=new JButton("计算");
b2=new JButton("清除");
JPanel p1=new JPanel();
JPanel p2=new JPanel();
p1.add(t1);
p1.add(op);
p1.add(t2);
p1.add(l);
p1.add(result);
p2.add(b1);
p2.add(b2);
this.add(p1,BorderLayout.CENTER);
this.add(p2,BorderLayout.SOUTH);
t1.setToolTipText("请输入第一个计算数据");
t2.setToolTipText("请输入第二个计算数据");
t1.addFocusListener(new FocusAdapter(){
public void focusGained(FocusEvent e) {
// TODO Auto-generated method stub
t1.setText("");
t1.setColumns(10);
t1.setToolTipText("请输入第一个计算数据");//设置提示文本
}
});
t2.addFocusListener(new FocusAdapter(){
public void focusGained(FocusEvent e) {
// TODO Auto-generated method stub
t2.setText("");
t2.setColumns(10);
t2.setToolTipText("请输入第二个计算数据");//设置提示文本
}
});
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
简易的计算器 frame=new 简易的计算器();
frame.setVisible(true);
frame.requestFocus();
}
}
运行效果
5.模拟QQ登录小程序
代码展示
package bilibili_tuo;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.border.Border;
public class QQ登录 implements ActionListener{ //extends JFrame {
static JPasswordField psd=new JPasswordField(18);
public static void main(String[] args) {
// TODO Auto-generated method stub
init();
}
public static void init() {
JFrame frame=new JFrame();
frame.setTitle("窗口测试");
frame.setSize(288,200);
frame.setLocation(400,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel l1=new JLabel("QQ登录");
l1.setHorizontalAlignment(JLabel.CENTER);
Font font=new Font("华文琥珀",Font.BOLD,16);
l1.setFont(font);
l1.setForeground(Color.RED);
JLabel l2=new JLabel("用户名:");
JLabel l3=new JLabel("密 码:");
JTextField username=new JTextField(18);//约定用户名和密码都是123
psd.setEchoChar('*');
JButton login=new JButton("登录");
JButton exit=new JButton("退出");
JPanel p1=new JPanel();
JPanel p2=new JPanel();
p1.add(l2);
p1.add(username);
p1.add(l3);
p1.add(psd);
p2.add(login);
p2.add(exit);
frame.add(l1,BorderLayout.NORTH);
frame.add(p1,BorderLayout.CENTER);
frame.add(p2,BorderLayout.SOUTH);
login.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
if(username.getText().equalsIgnoreCase("123")&&psd.getText().equalsIgnoreCase("123")) {
frame.dispose();
QQ主界面 qqframe = new QQ主界面 ();
qqframe.setVisible(true);
}
else {
JOptionPane.showMessageDialog(frame, "登录失败");
}
}
});
exit.addActionListener(new QQ登录());
frame.setResizable(false);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
JOptionPane.showMessageDialog(null, psd.getText());
}
}
6.模拟QQ主界面程序
代码展示
package tuo;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.tree.*;
public class QQ主界面 extends JFrame {
private JTextField textField;
private DefaultTreeModel treeModel;
private JTree tree;
public static void main(String args[]) {
QQ主界面 frame = new QQ主界面 ();
frame.setVisible(true);
}
public QQ主界面 () {
super();
setTitle("模拟QQ");
setSize(500, 375);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocation(200,200);
JScrollPane scrollPane = new JScrollPane();
getContentPane().add(scrollPane, BorderLayout.CENTER);
DefaultMutableTreeNode root = new DefaultMutableTreeNode("模拟QQ");
DefaultMutableTreeNode nodeA = new DefaultMutableTreeNode("朋友");
root.add(nodeA);
nodeA.add(new DefaultMutableTreeNode("吴代兴"));
nodeA.add(new DefaultMutableTreeNode("刘得多"));
nodeA.add(new DefaultMutableTreeNode("唐果"));
DefaultMutableTreeNode nodeB = new DefaultMutableTreeNode("同事");
root.add(nodeB);
nodeB.add(new DefaultMutableTreeNode("蓊风"));
DefaultMutableTreeNode nodeC = new DefaultMutableTreeNode("同学");
root.add(nodeC);
nodeC.add(new DefaultMutableTreeNode("张小明"));
nodeC.add(new DefaultMutableTreeNode("李朋"));
DefaultMutableTreeNode nodeD = new DefaultMutableTreeNode("家人");
root.add(nodeD);
nodeD.add(new DefaultMutableTreeNode("戴小花"));
nodeD.add(new DefaultMutableTreeNode("罗大估"));
DefaultMutableTreeNode nodeE = new DefaultMutableTreeNode("工作群");
root.add(nodeE);
nodeE.add(new DefaultMutableTreeNode("谢心怡"));
nodeE.add(new DefaultMutableTreeNode("李刚"));
treeModel = new DefaultTreeModel(root, true);
tree = new JTree(treeModel);
tree.setSelectionPath(new TreePath(root));// 取得树的root节点的位置并设置为选中状态
scrollPane.setViewportView(tree);
tree.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
if (arg0.getClickCount()==2 && arg0.getButton()==MouseEvent.BUTTON1) {
//右键双击的事件处理
DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree
.getLastSelectedPathComponent();// 获得选中的欲删除节点
// 查看欲删除的节点是否为根节点,根节点不允许删除
if (node.isLeaf()) {
SwingUtilities.invokeLater(聊天::createAndShowGUI);
}
}
}
});
final JPanel panel = new JPanel();
getContentPane().add(panel, BorderLayout.SOUTH);
final JLabel label = new JLabel();
label.setText("名称:");
panel.add(label);
textField = new JTextField();
textField.setColumns(8);
textField.setText("测试");
panel.add(textField);
final JButton addButton = new JButton("添加");
addButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
DefaultMutableTreeNode node = new DefaultMutableTreeNode(
textField.getText());// 创建欲添加节点
TreePath selectionPath = tree.getSelectionPath();// 获得选中的父节点路径
DefaultMutableTreeNode parentNode = (DefaultMutableTreeNode) selectionPath
.getLastPathComponent();// 获得选中的父节点
treeModel.insertNodeInto(node, parentNode, parentNode
.getChildCount());// 插入节点到所有子节点之后
TreePath path = selectionPath.pathByAddingChild(node);// 获得新添加节点的路径
if (!tree.isVisible(path))
tree.makeVisible(path);// 如果该节点不可见则令其可见
}
});
panel.add(addButton);
final JButton updButton = new JButton("修改");
updButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
// 获得选中的欲修改节点的路径
TreePath selectionPath = tree.getSelectionPath();
DefaultMutableTreeNode node = (DefaultMutableTreeNode) selectionPath
.getLastPathComponent();// 获得选中的欲修改节点
node.setUserObject(textField.getText());// 修改节点的用户标签
treeModel.nodeChanged(node);// 通知树模型该节点已经被修改
tree.setSelectionPath(selectionPath);// 选中被修改的节点
}
});
panel.add(updButton);
final JButton delButton = new JButton("删除");
delButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree
.getLastSelectedPathComponent();// 获得选中的欲删除节点
// 查看欲删除的节点是否为根节点,根节点不允许删除
if (!node.isRoot()) {
DefaultMutableTreeNode nextSelectedNode = node
.getNextSibling();// 获得下一个兄弟节点,以备选中
if (nextSelectedNode == null)// 查看是否存在兄弟节点
nextSelectedNode = (DefaultMutableTreeNode) node
.getParent();// 如果不存在则选中其父节点
treeModel.removeNodeFromParent(node);// 删除节点
tree.setSelectionPath(new TreePath(nextSelectedNode
.getPath()));// 选中节点
}
}
});
panel.add(delButton);
//
}
}
7.模拟QQ窗口聊天程序
代码展示
package tuo;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class 聊天{
public static void createAndShowGUI() {
// 创建一个JFrame聊天窗口
JFrame f = new JFrame("聊天窗口");
f.setLayout(new BorderLayout());
f.setSize(500, 450);
f.setLocation(300, 200);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建一个JTextArea文本域,用来显示多行聊天信息
JTextArea showArea = new JTextArea(18, 34);
// 创建一个JScrollPane滚动面板组件,将JTextArea文本域作为其显示组件
JScrollPane scrollPane = new JScrollPane(showArea);
showArea.setEditable(false); // 设置文本域不可编辑
// 创建一个JTextField文本框,用来输入单行聊天信息
JTextArea inputField = new JTextArea(3, 30);
JScrollPane scrollPane2 = new JScrollPane(inputField);
JButton btn = new JButton("发送");
// 为按钮添加监听事件
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String content = inputField.getText();
// 判断输入的信息是否为空
if (content != null && !content.trim().equals("")) {
// 如果不为空,将输入的文本追加到到聊天窗口
showArea.append("本人输入信息:" + content + "\n");
} else {
// 如果为空,提示聊天信息不能为空
showArea.append("聊天信息不能为空!!!" + "\n");
}
inputField.setText(""); // 将输入的文本域内容置为空
}
});
// 创建一个JPanel面板组件
JPanel panel = new JPanel();
JLabel label = new JLabel("聊天信息"); // 创建一个标签
panel.add(label); // 将标签组件添加到JPanel面板
panel.add(scrollPane2); // 将文本框添加到JPanel面板
panel.add(btn); // 将按钮添加到JPanel面板
// 向JFrame聊天窗口的顶部和尾部分别加入面板组件JScrollPane和JPanel
f.add(scrollPane, BorderLayout.PAGE_START);
f.add(panel, BorderLayout.PAGE_END);
}
public static void main(String[] args) {
// 使用SwingUtilities工具类调用createAndShowGUI()方法并显示GUI程序
SwingUtilities.invokeLater(聊天::createAndShowGUI);
}
}
8.班级管理系统
代码展示
package tuo;
import java.awt.BorderLayout;
import javax.swing.*;
import javax.swing.event.TreeSelectionEvent;
import javax.swing.event.TreeSelectionListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeModel;
import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;
public class 班级管理 {
private JTree tree;
private JFrame f;
private String columnName[]={"班级","姓名","性别","年龄","政治面貌"}; //表格列标题
private JTable table;
private Object data[][];
private DefaultTableModel tableModel;
public 班级管理(){
f=new JFrame();
f.setSize(600,400);
f.setTitle("班级管理");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
DefaultMutableTreeNode root;// 创建树的跟节点
root = new DefaultMutableTreeNode("计算机学院");
DefaultMutableTreeNode nodeA;
// 创建树的一级子节点
nodeA = new DefaultMutableTreeNode("计算机科学与技术");
// 向一级子节点添加二级子节点
nodeA.add(new DefaultMutableTreeNode("19计科", false));
nodeA.add(new DefaultMutableTreeNode("18计科", false));
nodeA.add(new DefaultMutableTreeNode("20计科", false));
nodeA.add(new DefaultMutableTreeNode("21计科", false));
root.add(nodeA);// 将一级子结点添加到跟结点
DefaultMutableTreeNode nodeB;
// 创建树的一级子节点
nodeB = new DefaultMutableTreeNode("物联网工程");
// 向一级子节点添加二级子节点
nodeB.add(new DefaultMutableTreeNode("19物联网工程", false));
nodeB.add(new DefaultMutableTreeNode("18物联网工程", false));
nodeB.add(new DefaultMutableTreeNode("20网络工程", false));
nodeB.add(new DefaultMutableTreeNode("18网络工程", false));
root.add(nodeB);// 将一级子结点添加到跟结点
DefaultTreeModel treeModel = new DefaultTreeModel(root, true);
tree = new JTree(treeModel);// 通过树模型创建树
TreeSelectionModel treeSelectionModel;// 获得树的选择模型
treeSelectionModel = tree.getSelectionModel();
// 设置树的选择模式为连选
treeSelectionModel.setSelectionMode(TreeSelectionModel.CONTIGUOUS_TREE_SELECTION);
tree.addTreeSelectionListener(new TreeSelectionListener() {
public void valueChanged(TreeSelectionEvent e) {
if (!tree.isSelectionEmpty()) {// 查看是否存在被选中的节点
// 获得被选中节点的路径
TreePath treePath= tree.getSelectionPath(); //treePath=[计算机学院, 物联网工程, 20网络工程]
// 以Object数组的形式返回该路径中所有节点的对象
Object[] path = treePath.getPath();
if(path[path.length-1].toString().equalsIgnoreCase("19计科")){
Object data[][]={{"19计科","陈峰","男",new Integer(19),"党员"}, //表格中数据
{"19计科","田一飞","男",new Integer(18),"团员"},
{"19计科","胡锦","女",new Integer(19),"党员"}};
tableModel.setDataVector(data, columnName);
}
if(path[path.length-1].toString().equalsIgnoreCase("20网络工程")){
Object data[][]={{"20网络工程","李大家","男",new Integer(20),"党员"}, //表格中数据
{"20网络工程","吴一赠","男",new Integer(18),"团员"},
{"20网络工程","谢谢","女",new Integer(18),"群众"}};
tableModel.setDataVector(data, columnName);
}
if(path[path.length-1].toString().equalsIgnoreCase("20计科")){
Object data[][]={{"20计科","陈大峰","男",new Integer(19),"党员"}, //表格中数据
{"20计科","田大飞","男",new Integer(18),"团员"},
{"20计科","胡大锦","女",new Integer(19),"党员"}};
tableModel.setDataVector(data, columnName);
}
if(path[path.length-1].toString().equalsIgnoreCase("19物联网工程")){
Object data[][]={{"19物联网工程","李不","男",new Integer(20),"党员"}, //表格中数据
{"19物联网工程","张兴","男",new Integer(18),"团员"},
{"19物联网工程","刘言","女",new Integer(18),"群众"}};
tableModel.setDataVector(data, columnName);
}
}
}
});
tableModel = new DefaultTableModel(data,columnName);
table = new JTable(tableModel);// 创建指定表格模型的表格
table.setRowHeight(25); //设置行高
JScrollPane pane=new JScrollPane(table); //添加滚动条
f.add(pane,BorderLayout.CENTER);
f.add(tree,BorderLayout.WEST);
f.setVisible(true);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
班级管理 frame=new 班级管理();
}
}
9.表格生成器
代码展示
package tuo;
import java.awt.*;
import java.awt.event.*;
import java.util.Iterator;
import java.util.Vector;
import javax.swing.*;
import javax.swing.table.*;
public class 表格 extends JFrame {
private DefaultTableModel tableModel;// 定义表格模型对象
private JTable table;// 定义表格对象
private JTextField aTextField;
private JTextField bTextField;
public static void main(String args[]) {
表格 frame = new 表格();
frame.setVisible(true);
}
public 表格() {
super();
setTitle("维护表格模型");
setBounds(100, 100, 800, 375);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JScrollPane scrollPane = new JScrollPane();
getContentPane().add(scrollPane, BorderLayout.CENTER);
this.setResizable(false);
//创建表格
String[] columnNames = { "学号", "姓名" };// 定义表格列名数组
String[][] tableValues = { { "20210101", "张三" }, { "20210102", "李四" },
{ "20210105", "王五" } };// 定义表格数据数组
// 创建指定表格列名和表格数据的表格模型
tableModel = new DefaultTableModel(tableValues, columnNames);
table = new JTable(tableModel);// 创建指定表格模型的表格
scrollPane.setViewportView(table);
//表格编辑
table.setRowSorter(new TableRowSorter(tableModel));// 设置表格的排序器,单击列标题可以实现排序功能
// 设置表格的选择模式为单选
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table.setSelectionForeground(Color.red);
table.setSelectionBackground(Color.BLUE);
table.setRowHeight(30);
// 为表格添加鼠标事件监听器,将选择的行数据显示在组件中
table.addMouseListener(new MouseAdapter() {
// 发生了点击事件
public void mouseClicked(MouseEvent e) {
// 获得被选中行的索引
int selectedRow = table.getSelectedRow();
// 从表格模型中获得指定单元格的值
Object oa = tableModel.getValueAt(selectedRow, 0);
// 从表格模型中获得指定单元格的值
Object ob = tableModel.getValueAt(selectedRow, 1);
aTextField.setText(oa.toString());// 将值赋值给文本框
bTextField.setText(ob.toString());// 将值赋值给文本框
}
});
final JPanel panel = new JPanel();
getContentPane().add(panel, BorderLayout.SOUTH);
panel.add(new JLabel("学号:"));
aTextField = new JTextField(10);
panel.add(aTextField);
panel.add(new JLabel("姓名:"));
bTextField = new JTextField(10);
panel.add(bTextField);
final JButton addButtonrow = new JButton("添加行");
final JButton addButtoncol = new JButton("添加列");
final JButton delButtonrow = new JButton("删除行");
final JButton delButtoncol = new JButton("删除列");
final JButton updButton = new JButton("修改");
/*
* 增加一行:addRow(Vector data);insertRow(int r,Vector data);
删除一行:removeRow(int r);
增加一列:addColumn(Object columnname,Vector data);表格末尾增加一列
*/
addButtonrow.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String[] rowValues = { aTextField.getText(),
bTextField.getText() };// 创建表格行数组
tableModel.addRow(rowValues);// 向表格模型中添加一行
JOptionPane.showMessageDialog(null, "添加成功!");
}
});
addButtoncol.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String colname=JOptionPane.showInputDialog("请输入列标题");
tableModel.addColumn(colname);
JOptionPane.showMessageDialog(null, "添加成功!");
}
});
delButtonrow.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int selectedRow = table.getSelectedRow();// 获得被选中行的索引
if (selectedRow != -1)// 判断是否存在被选中行
// 从表格模型当中删除指定行
tableModel.removeRow(selectedRow);
JOptionPane.showMessageDialog(null, "删除成功!");
}
});
delButtoncol.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int col = table.getSelectedColumn();
/*
* 删除一列:先通过getColumnName()获取列名,
* 再通过getDataVector()获取存储表格数据的向量,
* 然后直接操作列名向量和表格数据向量,删除指定的列,
* 最后通过setDataVector()更新表格;
*/
String name=table.getColumnName(col);
int s=tableModel.getColumnCount();
Vector colv=new Vector();
for(int i=0;i<s;i++) {
if(i!=col)
colv.add(tableModel.getColumnName(i));
}
Vector data=tableModel.getDataVector();
Iterator it=data.iterator();
for (int r=0; r<data.size(); r++) {
Vector row = (Vector)data.get(r);
row.removeElementAt(col);
}
tableModel.setDataVector(data,colv);
}
});
updButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int selectedRow = table.getSelectedRow();// 获得被选中行的索引
if (selectedRow != -1) {// 判断是否存在被选中行
tableModel.setValueAt(aTextField.getText(),
selectedRow, 0);// 修改表格模型当中的指定值
tableModel.setValueAt(bTextField.getText(),
selectedRow, 1);// 修改表格模型当中的指定值
}
}
});
panel.add(addButtonrow);
panel.add(addButtoncol);
panel.add(delButtonrow);
panel.add(delButtoncol);
panel.add(updButton);
}
}
更多代码展示:
【Java课程源码大分享】建议背诵全文!窗口设计、记事本读写、简易计算器、班级管理、模拟QQ登录和聊天等上课老师教的代码合集(期末考前复习必备)