Java的SwingGUI使用JTable创建图形列表界面_swing gui展示_一碗白菜豆腐的博客-程序员资料

技术标签: 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中进行增删改查的操作。

 

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_37910098/article/details/103638744

智能推荐

cakephp $this->html->css,CakePHP 使用小技巧_叶迅的博客-程序员资料

知道主键 ID 更新一条数据,代码示例:php$this->Order->id = $id;$this->Order->saveField('status', $status);点赞的时候需要+1,如何更新数据库?php$this->Widget->updateAll(array('Widget.numberfield' => 'Widget.number...

android Q 屏蔽所有LOG_android 拦截log_Fifi_0617的博客-程序员资料

修改./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.

模型检测Model Checking---学习记录(二)系统建模_ziigea夫差差的博客-程序员资料

文章目录系统建模一阶逻辑表示法系统建模设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 —做最好的linux新人学习交流群,期待你的加入_weixin_42152879的博客-程序员资料

做最好的交流学习群,不仅有linux各方向学习资料,群内文件直接下载,更有针对在职人员自动化提升课程。更有新人面试指导、交流技术、分享工作经验。欢迎你的加入,QQ群号 706855399二维码...

JAVAsap连接测试_Z.jin183的博客-程序员资料

JAVAsap连接测试1.如何导包首先下载好需要导入的.jar文件,如果有包含.dll文件也需要一同导入。例如sapjco3.jar包里面包含dll文件,将sapjco3.dll文件拖动到C:\Windows\System32里面在项目里面加载包文件,第一步:选择在当前项目右键打开build Path ——Configure build path打开Configure b...

M1 Silicon 安装tensorflow_macos_夏目和喵咪sensei的博客-程序员资料

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

随便推点

git 上传空文件夹_git上传空文件夹_颹蕭蕭的博客-程序员资料

空文件夹默认不会上传到远程仓库。如果想在远程仓库中保存一个空文件夹作为占位符的话,可以在空文件中创建一个.gitkeep 文件即可,说白了就是再创建一个空文件,使得你的文件夹不是空文件夹了。。。...

修改Antlr4解析SparkSQL的SqlBase.g4报错_ciqingloveless的博客-程序员资料

/* * 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

辞职啦,想去北京发展!_weixin_33752045的博客-程序员资料

不满足于当前的逍遥自在,想去北京看看,见识见识首都。辞职了,可是找了一周多了,却没有什么面试的消息,有点悲观! 转载于:https://blog.51cto.com/test2016/200907...

webform asp.net gridview 分页 利用aspnetpager 分页_霍先生的虚拟宇宙网络的博客-程序员资料

最近做项目成功温习了一个10年前的老项目asp.netwebform 哈哈。这里温习下,gridview 真分页

flyweight_sefemp的博客-程序员资料

作用: 运用共享技术有效地支持大量细粒度的对象。运用共享技术有效地支持大量细粒度的对象。  解析: Flyweight模式在大量使用一些可以被共享的对象的时候经常使用.比如,在QQ聊天的时候很多时候你懒得回复又不得不回复的时候,一般会用一些客套的话语敷衍别人,如"呵呵","好的"等等之类的,这些简单的答复其实每个人都是提前定义好的,在使用的时候才调用出来.Flywe

BZOJ 2395 Balkan 2011 Time is Money 最小乘积生成树_huanghongxun的博客-程序员资料

网上题解讲的好清楚好清楚了。。令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}=\

推荐文章

热门文章

相关标签