技术标签: Java Jtable Idea SwingGUI
工具:idea2019 ,MySql5.5
步骤:新建idea的项目,我们点击create new project
之后在打开的页面进行如下操作:在这里左侧为我们需要的项目类型,我们只需要选择一个普通的Java项目,右上方为
我们Java的jdk版本,这里我使用的是1.8版本,然后点击next即可。
next之后我们可以选择使用模块helloworld,或者不使用,接下来选择建立项目名称:
这时候项目基本建立完毕,我们将看到项目的首页:
新建包,或者默认使用,我们右键点击项目名,选择新建JFormDesigner Form,这是是我们添加的组件Swing,添加教程
在我们博客中。
如果找不到该组件,也可使用idea自带的GUI,在同样的路径下找到GUIForm,双击即可
这里展示第一种组件的设计模式,因为swing组件的操作页面比较简单,同时布局方式较容易搭配,我们在编辑页面选择布局成如下样式,具体过程为:我们将布局改为null Layout,具体如图:
注意:我们在下面建立我们Jframe的 Resource Bundle name,这个名字随意,但是必须建立联系,不然运行过程容易找不到位置。
我们在design主页面,在左侧的components组件中选择JTable,会出现下面的设计页面,我们进入左侧的代码编写中,
将数据库信息显示在页面中:
JForm的代码如下,ShowAllFrame为页面的name值,
/**
* @author Eric
*/
public class ShowAllFrame extends JFrame {
Vector rowData,columnNames;
JTable jt=null; //表格
JScrollPane jsp=null; //可滚动面板
public ShowAllFrame(){ //初始化
this.setLocationRelativeTo(null); //设置Jform的显示位置
columnNames=new Vector(); //设置列名
columnNames.add("id");
columnNames.add("name");
columnNames.add("pass");
columnNames.add("auth");
rowData = new Vector(); //设置行信息
DataBaseManager db = DataBaseManager.getInstance();
try {
String sql = "select * from info"; //查找表的内容
ResultSet set = db.execute3(sql);
while(set.next()){
Vector hang=new Vector();
hang.add(set.getInt(1)); //行1
hang.add(set.getString(2)); //行2
hang.add(set.getString(3)); //行3
hang.add(set.getInt(4)); //行4
//加入到rowData
rowData.add(hang);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
db.close();
}
//初始化Jtable
jt = new JTable(rowData,columnNames);
//初始化 jsp
jsp = new JScrollPane(jt);
//把jsp放入到jframe
this.add(jsp);
this.setSize(400, 300);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
public static void main(String[] args) {
ShowAllFrame sa = new ShowAllFrame();
sa.setVisible(true);
}
我们使用的DataBaseManager类就是一个简单的链接MySQL数据库的文件,代码如下:
public class DataBaseManager {
private Connection con;
private PreparedStatement pre;
private ResultSet rs;
private static DataBaseManager db;
static {
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
private DataBaseManager(){}
public static DataBaseManager getInstance(){
if(db == null){
db = new DataBaseManager();
}
return db;
}
private void buildConnection() {
try {
con = DriverManager.getConnection("jdbc:mysql://localhost/person?user=root&password=0000&serverTimezone=UTC");
} catch (SQLException e) {
e.printStackTrace();
}
}
public ResultSet execute3(String sql){
this.buildConnection();
try {
pre = con.prepareStatement(sql);
rs = pre.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
public void close(){
try {
if (rs != null){
rs.close();
}
pre.close();
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
我们可以在页面看到如下显示:
至此一个简易的使用SwingGUI的Jtable显示数据库内容完成,可以继续完善,比如添加各种按钮,在事件触发中进行
各种的逻辑功能,在DataBaseManager中进行增删改查的操作。
知道主键 ID 更新一条数据,代码示例:php$this->Order->id = $id;$this->Order->saveField('status', $status);点赞的时候需要+1,如何更新数据库?php$this->Widget->updateAll(array('Widget.numberfield' => 'Widget.number...
修改./system/core/liblog/logger_write.cpp文件的__android_log_buf_write函数:int __android_log_write(int prio, const char* tag, const char* msg) { return __android_log_buf_write(LOG_ID_MAIN, prio, tag, msg);}int __android_log_buf_write(int bufID, int prio, c.
文章目录系统建模一阶逻辑表示法系统建模设AP是一组原子命题,即对变量,常量和谓词符号的布尔表达式。 Clarke等人在AP上定义Kripke结构为4元组M =(S,I,R,L)由…组成一组有限的状态S.一组初始状态I⊆S.完全变迁关系R⊆S×S,即∀s∈S∃s’∈S使得(s,s’)∈R。L:S→2AP是标记函数,它标识在该状态下为真的原子命题集合。由于R是左总数,因此总是可以通过...
做最好的交流学习群,不仅有linux各方向学习资料,群内文件直接下载,更有针对在职人员自动化提升课程。更有新人面试指导、交流技术、分享工作经验。欢迎你的加入,QQ群号 706855399二维码...
JAVAsap连接测试1.如何导包首先下载好需要导入的.jar文件,如果有包含.dll文件也需要一同导入。例如sapjco3.jar包里面包含dll文件,将sapjco3.dll文件拖动到C:\Windows\System32里面在项目里面加载包文件,第一步:选择在当前项目右键打开build Path ——Configure build path打开Configure b...
M1 Silicon 安装tensorflow_macos1. 下载miniforge32 创建虚拟环境3 安装apple tensorflow方法1(推荐):方法2:测试代码苹果官网: https://developer.apple.com/metal/tensorflow-plugin/apple github: https://github.com/apple/tensorflow_macos方法1: https://www.cyberlight.xyz/passage/tensorflow-a
空文件夹默认不会上传到远程仓库。如果想在远程仓库中保存一个空文件夹作为占位符的话,可以在空文件中创建一个.gitkeep 文件即可,说白了就是再创建一个空文件,使得你的文件夹不是空文件夹了。。。...
/* * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required
不满足于当前的逍遥自在,想去北京看看,见识见识首都。辞职了,可是找了一周多了,却没有什么面试的消息,有点悲观! 转载于:https://blog.51cto.com/test2016/200907...
最近做项目成功温习了一个10年前的老项目asp.netwebform 哈哈。这里温习下,gridview 真分页
作用: 运用共享技术有效地支持大量细粒度的对象。运用共享技术有效地支持大量细粒度的对象。 解析: Flyweight模式在大量使用一些可以被共享的对象的时候经常使用.比如,在QQ聊天的时候很多时候你懒得回复又不得不回复的时候,一般会用一些客套的话语敷衍别人,如"呵呵","好的"等等之类的,这些简单的答复其实每个人都是提前定义好的,在使用的时候才调用出来.Flywe
网上题解讲的好清楚好清楚了。。令x=∑c,y=∑tx=\sum c,y=\sum t,要最优化xyxy,如果将其表示成(x,y)(x,y),那么最优的(x,y)(x,y)只会在下凸壳上,那么分治? 分治将凸壳不断地划分,至于划分点有一个很显然的在凸壳上的就是离两端点最远的点C(在坐标轴侧)。 求C显然是最大化S△ABC=12AB×d=12AC−→−×AB−→S_{\triangle ABC}=\