一、创建一个java项目

二、添加一个java类:

java类完整代码:
import javax.swing.*;
import java.awt.*;
import java.util.Arrays;
/**
* 一个简单的带列表的Java应用程序,可接收命令行参数并显示在列表中。
*/
public class TableDemo extends JFrame {
private DefaultListModel<String> listModel;
private JList<String> listView;
private JLabel statusLabel;
public TableDemo(String[] args) {
// 设置窗口标题
super("窗口标题");
// 定义表头
String[] columnNames = {"序号", "姓名"};
// 计算行数
int argCount = (args != null) ? args.length : 0;
// 创建数据数组(多一行用于提示)
Object[][] data;
if (argCount == 0) {
data = new Object[1][2];
data[0][0] = (Object) 1;
data[0][1] = "未收到任何参数。";
} else {
data = new Object[argCount][2];
for (int i = 0; i < argCount; i++) {
String[] param = args[i].split(","); // 列之前用逗号分隔
data[i][0] = param[0]; // 序号从1开始
data[i][1] = param[1]; // 姓名
}
}
// 创建表格模型和表格
JTable table = new JTable(data, columnNames);
table.setFillsViewportHeight(true); // 表格填满面板高度
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
// 启用自动调整:后续列(从第2列开始)平分剩余空间
table.setAutoResizeMode(JTable.AUTO_RESIZE_SUBSEQUENT_COLUMNS);
// === 设置列宽 ===
//table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); // 关闭自动调整,以便固定列宽
table.setRowHeight(24);
// 获取列模型
javax.swing.table.TableColumnModel columnModel = table.getColumnModel();
// 设置第一列(序号)宽度
columnModel.getColumn(0).setPreferredWidth(40); // 序号列:60像素宽
// 设置第二列(参数值)宽度
columnModel.getColumn(1).setPreferredWidth(120); // 参数值列:400像素宽
// 添加滚动面板(JTable 通常放在 JScrollPane 中)
JScrollPane scrollPane = new JScrollPane(table);
scrollPane.setPreferredSize(new Dimension(300, 200));
// 布局
setLayout(new BorderLayout());
add(scrollPane, BorderLayout.CENTER);
// 窗口设置
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 600);
// 设置窗口位置:left=100, top=100
setLocationRelativeTo(null); // 居中显示
// 不可改变大小
//setResizable(false);
// 显示窗口
setVisible(true);
}
/**
* 主方法 - 程序入口点
* @param args 命令行参数
*/
public static void main(String[] args) {
// 打印接收到的参数(用于调试)
System.out.println("接收到的参数: " + Arrays.toString(args));
// 使用 SwingUtilities.invokeLater 确保 GUI 在事件调度线程中创建
SwingUtilities.invokeLater(() -> {
try {
// 可以在这里设置 LookAndFeel,例如:
// UIManager.setLookAndFeel(UIManager.getSystemLookAndFeel());
new TableDemo(args);
} catch (Exception e) {
e.printStackTrace();
JOptionPane.showMessageDialog(null,
"程序启动失败: " + e.getMessage(),
"错误",
JOptionPane.ERROR_MESSAGE);
System.exit(1);
}
});
}
}
直接运行项目,效果如下图所示:

三、将项目打包成jar文件



点确定后界面如下图,再点应用、确定:

再点构建工件:


构建后生成的jar位置如图,MySwing.jar:

四、打包程序运行所需要的精简版jre包
打开cmd,运行以下命令:
jlink --module-path $JAVA_HOME/jmods --add-modules java.desktop,java.logging --output myjre --compress 2 --no-header-files --no-man-pages
运行完成后,会在桌面-->个人账号目录下生成一个myjre文件夹。
五、生成exe文件
将 MySwing.jar 与 myjre文件夹 放到同一目录下,例: D:\test01。打开cmd, cd 到 D:\test01,然后执行以下命令:
jpackage --name MyWinDemo --input . --main-jar MySwing.jar --main-class TableDemo --type app-image --app-version 1.0 --vendor "zhangsan" --runtime-image myjre --dest D:\exeout
exe文件将生成在: D:\exeout目录,结构如图所示:

1457

被折叠的 条评论
为什么被折叠?



