使用AbstractTableModel构建Table在表格中添加JButton按钮,之前在网上找了2天没有找到好用的程序,最终终于找到一个好用的例子。
不要使,我退你们分。

singtheSwingJTableclasscanquicklybecomeastickybusinesswhenyouwanttocustomizeittoyourspecificneeds.FirstyoumustbecomefamiliarwithhowtheJTableclassisorganized.IndividualcellsarerenderedbyTableCellRendererimplementations.ThetablecontentsarerepresentedbyanimplementationoftheTableModelinterface.Bydefault,JTableusesDefaultTableCellRenderertodrawitscells.DefaultTableCellRendererrecognizesafewprimitivetypes,renderingthemasstrings,andcanevendisplayBooleantypesascheckboxes.ButitdefaultstodisplayingthevaluereturnedbytoString()fortypesitdoesnotspecificallyhandle.YouhavetoprovideyourownTableCellRendererimplementationifyouwanttodisplaybuttonsinaJTable.TheTableCellRendererinterfacecontainsonlyonemethod,getTableCellRendererComponent(...),whichreturnsajava.awt.Componentthatknowshowtodrawthecontentsofaspecificcell.Usually,getTableCellRendererComponent()willreturnthesamecomponentforeverycellofacolumn,toavoidtheunnecessaryuseofextramemory.Butwhenthecontentsofacellisitselfacomponent,itisallrighttoreturnthatcomponentastherenderer.Therefore,thefirststeptowardshavingJButtonsdisplaycorrectlyinaJTableistocreateaTableCellRendererimplementationthatreturnstheJButtoncontainedinthecellbeingrendered.Intheaccompanyingcodelisting,JTableButtonRendererdemonstrateshowtodothis.EvenaftercreatingacustomTableCellRenderer,you'restillnotdone.TheTableModelassociatedwithagivenJTabledoesnotonlykeeptrackofthecontentsofeachcell,butitalsokeepstrackoftheclassofdatastoredineachcolumn.DefaultTableModelisdesignedtoworkwithDefaultTableCellRendererandwillreturnjava.lang.String.classforcolumnscontainingdatatypesthatitdoesnotspecificallyhandle.Theexact
2024/6/23 0:29:22 4KB Table JButton 按钮
1
packageasc;importjava.awt.*;importjavax.swing.*;publicclasscsextendsJFrame{//定义组件JPaneljp1,jp2,jp3;//面板JLabeljlb1,jlb2;//标签JButtonjb1,jb2;//按钮JTextFieldjtf;//文本JPasswordFieldjpf;//密码publicstaticvoidmain(String[]args){cswin=newcs();}//构造函数publiccs(){//创建面板jp1=newJPanel();jp2=newJPanel();jp3=newJPanel();//创建标签jlb1=newJLabel("用户名");jlb2=newJLabel("密码");//创建按钮jb1=newJButton("登录");jb2=newJButton("重置");//创建文本框jtf=newJTextField(10);//创建密码框jpf=newJPasswordField(10);//设置布局管理this.setLayout(newGridLayout(3,1));//网格式布局//加入各个组件jp1.add(jlb1);jp1.add(jtf);jp2.add(jlb2);jp2.add(jpf);jp3.add(jb1);jp3.add(jb2);//加入到JFramethis.add(jp1);this.add(jp2);this.add(jp3);//设置窗体this.setTitle("用户登录");//窗体标签this.setSize(300,150);//窗体大小this.setLocationRelativeTo(null);//在屏幕中间显示(居中显示)this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//退出关闭JFramethis.setVisible(true);//显示窗体//锁定窗体this.setResizable(false);}}
2024/6/21 2:27:16 2KB ..
1
用java编写的简易计算器实验报告实现计算器的加、减、乘、除等基本功能,参考Windows计算器增加多种功能,并处理异常。
privateJTextAreatext;//输入框privateJButtonbuttonBackspace,buttonCE,buttonC;//结果操作键privateJButtonbtn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9,btn0;//数字键privateJButtonbtnMC,btnMR,btnMS,btnMAdd,btnMSub;//存储操作键privateJButtonbtnPlus,btnMinus,btnDivide,btnMultiply,btnEqual;//加减乘除等号键privateJButtonbtnPercent,btnSqrt,btnNegtive,btnReciprocal,btnDot;//"%",开方,"+/-",倒数,小数点……MainFrame(){super("计算器");setBounds(100,100,335,310);this.setDefaultCloseOperation(EXIT_ON_CLOSE);this.getContentPane().setLayout(newFlowLayout(FlowLayout.RIGHT));panel=newJPanel();panel2=newJPanel();gridpanelM=newJPanel();gridpanelR=newJPanel();gridpanelN=newJPanel();panel.setLayout(newBorderLayout(5,5));//水平垂直间距panel2.setLayout(newBorderLayout(5,5));gridpanelM.setLayout(newGridLayout(1,5,5,5));gridpanelR.setLayout(newGridLayout(1,3,5,5));gridpanelN.setLayout(newGridLayout(4,5,5,5));panel.add(gridpanelR,BorderLayout.NORTH);panel.add(panel2,BorderLayout.CENTER);panel2.add(gridpanelM,BorderLayout.NORTH);panel2.add(gridpanelN,BorderLayout.CENTER);this.getContentPane().add(text,BorderLayout.NORTH);this.getContentPane().add(panel,BorderLayout.SOUTH;………………}
2023/6/1 13:51:44 159KB java 计算器 实验报告
1
这是用Java编写的一个简单的银行转账系统,包括取款,存款,转账等功能,其中用到了数据库的连接,采用Eclipse编写,包含数据库的设计文件。
非常适合有一定基础的Java初学者使用。
packagecom.gujunjia.bank;/**Tochangethistemplate,chooseTools|Templates*andopenthetemplateintheeditor.*/importjava.sql.*;/****@authorgujunjia*/publicclassDataBase{ staticConnectionconn; staticPreparedStatementst; staticResultSetrs; /** *加载驱动 */ publicstaticvoidloadDriver() { try { Class.forName("com.mysql.jdbc.Driver"); } catch(ClassNotFoundExceptione) { System.out.println("加载驱动失败"); } } /** *创建数据库的连接 * *@paramdatabase *需要访问的数据库的名字 */ publicstaticvoidconnectionDatabase(Stringdatabase) { try { Stringurl="jdbc:mysql://localhost:3306/"+database; Stringusername="root"; Stringpassword="gujunjia"; conn=DriverManager.getConnection(url,username,password); } catch(SQLExceptione) { System.out.println(e.getMessage()); } } /** *关闭数据库连接 */ publicstaticvoidcloseConnection() { if(rs!=null) {//关闭记录集 try { rs.close(); } catch(SQLExceptione) { e.printStackTrace(); } } if(st!=null) {//关闭声明 try { st.close(); } catch(SQLExceptione) { e.printStackTrace(); } } if(conn!=null) {//关闭连接对象 try { conn.close(); } catch(SQLExceptione) { e.printStackTrace(); } } }}packagecom.gujunjia.bank;/**Tochangethistemplate,chooseTools|Templates*andopenthetemplateintheeditor.*/importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;/***本类次要实现整个系统的界面**@authorgujunjia*/publicclassMainFrameextendsJFrameimplementsActionListener,FocusListener{ /** * */ privatestaticfinallongserialVersionUID=1L; publicstaticStringuserId; JTextFielduserIdText; JPasswordFieldpasswordText; JButtonregisterButton; JButtonlogInButton; publicMainFrame() { super("个人银行系统
2020/11/9 14:44:46 132KB Java 银行转账
1
书籍目录目录第1章基本概念11.1什么是设计模式21.2设计模式的作用31.3GRASP模式的分类41.4GoF设计模式的分类41.5模式的学习阶段6第2章担任任地设计对象——GRASP92.1InformationExpert(信息专家)112.2Creator(创造者)132.3LowCoupling(低耦合)142.4HighCohesion(高内聚)152.5Controller(控制器)172.6Polymorphism(多态)182.7PureFabrication(纯虚构)192.8Indirection(间接)202.9ProtectedVariations(受保护变化)21第3章GoF-CreationalDesignPatterns创建型设计模式233.1SimpleFactoryPattern(简单工厂模式)243.1.1定义243.1.2现实例子——国旗生产厂263.1.3C#实例1——电子付款系统263.1.4C#实例2——学校登录系统293.1.5Java实例——手机简单工厂323.1.6优势和缺陷343.1.7应用情景343.2FactoryMethodPattern(工厂方法模式)353.2.1定义353.2.2现实例子——兵工厂363.2.3C#实例——多文档系统373.2.4Java实例——扩展了的手机工厂413.2.5优势和缺陷443.2.6应用情景443.3AbstractFactoryPattern(抽象工厂模式)453.3.1定义453.3.2现实例子——扩展了的兵工厂483.3.3C#实例——大陆生态系统493.3.4Java实例——电脑产品523.3.5优势和缺陷573.3.6应用情景573.4BuilderPattern(建造者模式)583.4.1定义583.4.2现实例子——快餐店603.4.3C#实例——车间造车613.4.4Java实例——建造房屋653.4.5优势和缺陷693.4.6应用情景703.5PrototypePattern(原型模式)703.5.1定义703.5.2现实中的拷贝-粘贴713.5.3C#实例——颜色管理器723.5.4Java实例——简单ToolBar743.5.5ShallowCopy与DeepCopy763.5.6优势和缺陷823.5.7应用情景823.6SingletonPattern(单例模式)823.6.1定义823.6.2现?抵械牡ダ??猈indowsTaskManager833.6.3C#实例——负载均衡控制器843.6.4Java实例——系统日志863.6.5DoubleCheckLocking(双检锁)893.6.6优势和缺陷933.6.7应用情景93第4章GoF-StructuralDesignPatterns结构型设计模式954.1AdapterPattern(适配器模式)964.1.1定义964.1.2现实中的实例——电脑电源适配器974.1.3C#实例——化学数据银行984.1.4Java实例——清洁系统1024.1.5优势和缺陷1044.1.6应用情景1044.2BridgePattern(桥接模式)1044.2.1定义1044.2.2现实中的实例——男人的约会1064.2.3C#实例——商业对象与数据对象1074.2.4Java实例——不同系统的图像处理1124.2.5优势和缺陷1144.2.6应用情景1154.3CompositePattern(组合模式)1154.3.1定义1154.3.2组合模式的现实应用——资源管理器1174.3.3C#实例——图形树状对象结构1184.3.4Java实例——文档格式化1214.3.5优势和缺陷1244.3.6应用情景1254.4DecoratorPattern(装饰模式)1254.4.1定义1254.4.2现实中的装饰模式——相架1264.4.3C#实例——图书馆中的项目1274.4.4Java实例——自定义JButton1314.4.5优势和缺陷1334.4.6应用情景1344.5FacadePattern(外观模式)1344
2020/1/13 6:24:51 1.21MB 设计 模式 设计模式 设计模式之禅
1
(含源码及报告)本程序分析了自2016年到2021年(外加)每年我国原油加工的产量,并且分析了2020年全国各地区原油加工量等,含饼状图,柱状图,折线图,数据在地图上显示。
运转本程序需要requests、bs4、csv、pandas、matplotlib、pyecharts库的支持,如果缺少某库请自行安装后再运转。
文件含6个excel表,若干个csv文件以及一个名字为render的html文件(需要用浏览器打开),直观的数据处理部分是图片以及html文件,可在地图中显示,数据处理的是excel文件。
不懂可以扫文件中二维码在QQ里面问。
2022/9/30 16:31:44 29.75MB 爬虫 python 源码软件 开发语言
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡