如何获取控制台显示的文本?

怎样用C#获得另一个控制台程序显示的内容啊?这个控制台程序是别人写的,现在可以获得它的句柄,用了GetWindowsText和SendMessage(WM_GETTEXT)都只能获得它的标题,但是得不到它里面显示的东西,各位大神有别的好办法吗?跪求赐教!!!

2个回答

用内存映射。不能直接用获得句柄的方式,

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于javafx实现图形界面的控制台的问题?
请问怎么实现基于图形界面的控制台 就是在图形界面的基础上 实现类似于控制台输入一个指令 然后执行输出或者其他操作 比如像eclipse 的控制台一样,输入一句执行,已输入和显示的文本不可编辑。
JList中的Renderer获取问题,当根据索引index值设置显示的文本内容时,文本显示全都一样
我重写ListCellRenderer类,继承JPanel。在JPanel中添加一个JLabel用于显示list中的索引。但是设置setText(String.valueOf(index))之后显示的值都为0.如果用控制台直接输入index又是对的,请问有没有大神知道为什么,感觉涉及了内存的问题? 代码如下: ``` @Override public Component getListCellRendererComponent(JList<? extends Vehicle> list, Vehicle value, int index, boolean isSelected, boolean cellHasFocus) { // 绘制图标 JLabel iconLabel = new JLabel(); // 绘制车位号 JLabel numLabel = new JLabel(); // 绘制车牌号,没有显示位空车位 JLabel vehicleNumber = new JLabel(); if (value.isIsInParking()) { iconLabel.setIcon(iconNotNull); } else { iconLabel.setIcon(iconNull); } JPanel temp1 = new JPanel(new FlowLayout()); temp1.setPreferredSize(new Dimension(50, 50)); temp1.add(iconLabel); temp1.setBackground(CellColr); numLabel.setText(String.valueOf(index)); //显示出来为0 System.out.println(num); //正常显示0 1 2 3 4 ... // numLabel.setText(String.valueOf(num) + "号车位"); vehicleNumber.setText(value.getLicensePlateNumber()); numLabel.setForeground(Color.orange); vehicleNumber.setForeground(Color.orange); numLabel.setFont(font); vehicleNumber.setFont(font); JPanel temp2 = new JPanel(new FlowLayout()); Box box = Box.createVerticalBox(); box.add(numLabel); box.add(Box.createVerticalStrut(8)); box.add(vehicleNumber); temp2.setBackground(CellColr); temp2.add(box); add(temp1, BorderLayout.WEST); add(temp2, BorderLayout.CENTER); return this; } ``` 图: ![图片说明](https://img-ask.csdn.net/upload/201612/22/1482416656_727617.png) 谢谢了~
opengl +qt 显示图像 和 文本 纹理贴图 显示文本
1.利用opengl对图片进行显示,点击图片画出一个角度,角度的线可以显示,但是角度的数字没有显示。我把文本的代码单独放到控制台显示,显示是正常的,所以推断可能是图片的纹理 对文本的显示造成了干扰,哪些代码影响到了。 ![图片说明](https://img-ask.csdn.net/upload/201906/20/1561032261_180148.jpg) 具体代码如下: 1> 图像关键代码: QImage GlImage = mpCurQImg->convertToFormat(QImage::Format_RGBA8888); glGenTextures(TEXTURE_SIZE,&m_TextureIndex); glBindTexture(GL_TEXTURE_2D,m_TextureIndex); glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR ); glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR ); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); glTexImage2D( GL_TEXTURE_2D, 0, GL_RGB, GlImage.width(), GlImage.height(), 0, GL_RGBA, GL_UNSIGNED_BYTE, GlImage.bits() ); glPushMatrix(); glBindTexture(GL_TEXTURE_2D,m_TextureIndex); glBegin( GL_QUADS ); glTexCoord2f( 0.0, 0.0 ); glVertex3f( pTextRect[0], pTextRect[2],0); glTexCoord2f( 1.0, 0.0 ); glVertex3f( pTextRect[1], pTextRect[2],0); glTexCoord2f( 1.0, 1.0 ); glVertex3f( pTextRect[1], pTextRect[3],0); glTexCoord2f( 0.0, 1.0 ); glVertex3f( pTextRect[0], pTextRect[3],0); glEnd(); glDisable(GL_TEXTURE_2D); glDisable(GL_DEPTH_TEST); glPopMatrix(); ``` ``` 2>角度的数值显示代码: DrawStringInfo(QString * str,QPointF pt) glColor3f(1.0f, 0.0f, 0.0f); glDisable(GL_DEPTH_TEST); QByteArray ba = str->toLatin1(); const char*ch = "test"; glRasterPos2f(0.0f,0.0f);//测试放在中央 static int isFirstCall = 1; static GLuint lists; if (isFirstCall) { isFirstCall = 0; lists = glGenLists(MAX_CHAR); wglUseFontBitmaps(wglGetCurrentDC(), 0, MAX_CHAR, lists); } for (; *ch != '\0'; ++ch) { glCallList(lists + *ch); } glEnable(GL_DEPTH_TEST);
关于jsp-servlet实现文件上传的中文乱码问题
servlet控制台打印出的文本中文显示的是问号,jsp页面,以及上传的文件都可以正常显示中文。请问怎么回事?项目编码,单个文件编码都设置成了utf-8,我单独写一个非servlet的java小程序控制台是可以显示中文的。
windows 中用BAT读取文本文件乱码
windows 中用BAT读取文本并在控制台显示出来,显示乱码。result.txt里面是中文。 @echo off echo 正在执行,请稍后.... tesseract example1.tif result -l chi_sim for /f "delims=" %%a in (result.txt) do ( echo %%a ) @pause ![图片说明](https://img-ask.csdn.net/upload/201601/19/1453133688_804199.png)
Windows 10 版本的电脑 在 CMD 或命令控制符 窗口 输入 chcp 没有反应,基于打印中文 出现乱码
学习 在cmd窗口 打开文本 发现原本是中文的却在窗口显示的是乱码。先是在网上搜索 解决方法:修改注册表或者是输入语句$OutputEncoding = New-Object -typename System.Text.UTF8Encoding都没有反应。(怀疑是因为 版本更新到W10 后 各个控制台 的指令出现更新吗 help的指令也没有反应 )![图片说明](https://img-ask.csdn.net/upload/202001/20/1579480613_464848.png) 在 电脑里查看的 命令提示符 所在位置中 没有 “命令提示符UTF-8”![图片说明](https://img-ask.csdn.net/upload/202001/20/1579480722_536868.png) 以下是 网络上一直出现的 图片 ![图片说明](https://bbs.kechuang.org/r/209939) 我想询问 各路 大神 遇到这种情况 ,该如何解决?
在编辑文档页面使用CKEditor5中如何显示接口中获取的值
现在用vue编辑页面中需要使用CKEditor5富文本编辑器, 但是接口中获取的数据无法显示在CKEditor5中。 ``` <el-form-item> <div class="goods-editor"> <!-- 工具栏容器 --> <div id="toolbar-container"></div> <!-- 编辑器容器 --> <div id="editor"> <p v-html="articleData.content"></p> </div> </div> </el-form-item> ``` 并且初始化的时候也赋值过 ``` //初始化编辑器 CKEditor.create(document.querySelector("#editor"), { removePlugins: ["MediaEmbed"], //除去视频按钮 language: "zh-cn", // 中文 ckfinder: { uploaded: 1, url: "/" // 后端处理上传逻辑返回json数据,包括uploaded(选项true/false)和url两个字段 } }) .then(editor => { const toolbarContainer = document.querySelector("#toolbar-container"); toolbarContainer.appendChild(editor.ui.view.toolbar.element); // 加载了适配器 editor.plugins.get("FileRepository").createUploadAdapter = loader => { return new UploadAdapter(loader,editor,this); }; this.editor = editor; // 将编辑器保存起来,用来随时获取编辑器中的内容等,执行一些操作 this.editor.setData(this.articleData.content) }) .catch(error => { console.error(error); }); ``` 但无论如何都是无法显示。 ![图片说明](https://img-ask.csdn.net/upload/201904/08/1554719458_780112.png) 但是在控制台看代码的话可以看到在对应id内是有数据了 ![图片说明](https://img-ask.csdn.net/upload/201904/08/1554719528_993591.png) 希望能有大神解答
最后问一次,用tkinter真的没有办法把文本原格式输出到text中显示吗?????
不能用Text.insert,因为定义的函数print语句有很多,在控制台是可以用print进行输出,但是Text.insert不支持带有print的函数, Text.insert中用的函数只能是函数的返回值return,但是如果用返回值就只能返回一个print的语句,text框中出现的只有一句话,其他的都会失效。 另外尝试用yield,让函数可以有多个return的语句返回,但是最后还是要用到print遍历出来或者转化为元组模式,跟原来的函数输出格式天差地别。 这问题困扰了一整天,该怎么破?希望大神搭救。 (如果可以请说清楚点,谢谢)
控制台报 JDBCPieDataset - unknown data type
我实在网上找的代码,他们的工程发布过,执行后可以显示出图形。我的不能,在控制台一直报JDBCPieDataset - unknown data type。 这是PiePieChartUtil类; package cn.chart.pie; import java.awt.Font; import java.text.NumberFormat; import org.jfree.chart.ChartFactory; import org.jfree.chart.JFreeChart; import org.jfree.chart.labels.StandardPieSectionLabelGenerator; import org.jfree.chart.plot.PiePlot; import org.jfree.data.general.PieDataset; import org.jfree.data.jdbc.JDBCPieDataset; public class PieChartUtil { public static PieDataset initPieData(){ // 数据库驱动 String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; // 数据库连接URL String url = "jdbc:sqlserver://localhost:1433;DatabaseName=Test1"; // 数据库用户名 String user = "sa"; // 数据库密码 String password = "13949060166.zzhd"; JDBCPieDataset dataset = null; try { // 通过JDBC创建数据集合 dataset = new JDBCPieDataset(url, driverName, user, password); // 测试连接是否成功 System.out.println("Connection Successful!"); // SQL语句 String query = "select category,val from tb_shop"; //TODO System.out.println("111111"); // 查询并向数据集合中添加数据 dataset.executeQuery(query); // 关闭数据库连接 dataset.close(); } catch (Exception e) { e.printStackTrace(); } return dataset; } // 创建饼图 public static JFreeChart createChart(){ // 参数分别表示图表标题,数据集对象,是否显示图例,是否显示提示文本,是否生成超链接 JFreeChart chart = ChartFactory.createPieChart3D("月销售量统计", initPieData(), true, true, false); // 设置标题字体 chart.getTitle().setFont(new Font("隶书", Font.BOLD, 25)); // 设置图例类别字体 chart.getLegend().setItemFont(new Font("宋体",Font.BOLD,15)); // 获取绘图区 PiePlot plot = (PiePlot) chart.getPlot(); // 设置前景透明度 plot.setForegroundAlpha(0.5f); // 设置分类标签的字体 plot.setLabelFont(new Font("宋体",Font.PLAIN,12)); // 设置饼形为正圆 plot.setCircular(true); // 设置分类标签格式为类别名称及所占百分比 plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}={2}", NumberFormat.getNumberInstance(), NumberFormat.getPercentInstance())); return chart; } } pie.jsp代码 <%@page import="cn.chart.pie.PieChartUtil"%> <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ page import="org.jfree.chart.servlet.ServletUtilities,cn.chart.pie.PieChartUtil"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>饼图示例</title> </head> <body> <% String fileName=ServletUtilities.saveChartAsJPEG(PieChartUtil.createChart(), 500, 300, session); String graphURL=request.getContextPath()+"/DisplayChart?filename="+fileName;%> <div align="center"> <img src="<%=graphURL%>" border="1"> </div> </body> </html> web.xml配置 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <filter> <filter-name>encodingFilter</filter-name> <filter-class> org.springframework.web.filter.CharacterEncodingFilter </filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>DisplayChart</servlet-name> <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class> </servlet> <servlet-mapping> <servlet-name>DisplayChart</servlet-name> <url-pattern>/DisplayChart</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> 求各位大神指点一下
关于Oracle Pro*C换行符的问题
我在Windows下用VS2012 ProC写的操作数据库的DLL,在VB调用时,调用接口函数可以正常将CRLF更新到DB中; 但是,同样在Windows下用VS2012 ProC写的C控制台程序,运行时,读取文件更新DB时,会把从文件读入得CRLF换行符中的CR丢掉,更到DB中的只有LF,导致VB读取此数据,显示到多行文本控件中时,换行无法识别。 已经确认在C控制台程序,在执行ProC更新语句前,带回车的字段是正常的(CRLF),此变量为CHAR[100],回车字符所在的位显示为"\n",占一个字节。 请问,除了在VB端用replace置换外,有没有从根本上解决此问题的方法? 发生这种事情的根本原因在哪里?
Python-Tkinter请问有什么办法可以在事件处理过程中,即时刷新Text的信息?
新手刚学了Thinter,我用了for循环往文本框里添加信息,,用的insert方法,点击按钮后结果如下图所示,,表面上看不出控制台的结果跟Text组件的结果有啥区别,,但是事实上左边的Text的信息是4秒后才把添加的四条信息刷新出来的,,然而看到信息里面的用time方法打印出的时间戳确实方法已经处理过…… 也就是说事件发生-循环语句中处理好但是要方法结束后,事件产生的组件信息才会刷新出来? ``` def test(): for i in range(1,5): i=i*1.0 print(time.time()) t4.insert(i,'hello--'+str(time.time())+'\n') if i==4: break time.sleep(1) print(time.time()) b2=Button(frm_l,width=10,command=test) ``` ![图片说明](https://img-ask.csdn.net/upload/201507/09/1436439793_929807.jpg) 那请问有什么办法可以在事件处理过程中,即时刷新Text的信息? 补充一下,其实搞这个Text信息,,就是为了使用时候可以看到程序的一些运行情况。。我是想把方法的运行情况的返回值(把原本打印到控制台的提示信息变成方法的返回值)都直接显示到Text文本框里面,这是比较直观的方法。 然而事实上现在却卡在这里。或者换个思路,,有什么办法让别人(没有安装python环境)使用打包后的exe程序的时候看到控制台里面的信息。。
java :为什么不能将文本框的名字添加进数据库(SQL server 2008)中?
我想将从文本框中输入的文字添加到数据库当中,控制台显示的是“数据添加成功的提示”,但是数据库那边id号虽然自增长了,可Name列中却是空的?为什么? (想贴图但是我新手不知道怎么贴,只能委屈大神看看这没有高亮的代码了...) ``` JPanel GongXiPanel = new JPanel(); // 新建面板保存标签 GongXiPanel.setLayout(new GridLayout(3, 1, 5, 5)); // 将面板设置成流式布局 getContentPane().add(GongXiPanel, BorderLayout.NORTH); JLabel Congra = new JLabel("恭喜你!",SwingConstants.CENTER); Congra.setFont(new Font("宋体",Font.BOLD,30)); GongXiPanel.add(Congra); winName = new JTextField(); NewName = winName.getText().toString(); winName.setVisible(true); winName.setBounds(new Rectangle(100, 140, 143, 22)); GongXiPanel.add(winName); I_am = new JButton("确定"); I_am.setVisible(true); I_am.setBounds(new Rectangle(20, 20, 20, 20)); GongXiPanel.add(I_am); winName.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { winName.requestFocus(); } }); I_am.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { SaveWinner save = new SaveWinner(); save.setRecord(NewName); } }); ``` public class SaveWinner{ private String name = null; public void setRecord(String newName) { name = newName; Connection conn = null; conn = DBConnection.getConnection(); try { PreparedStatement statement = conn.prepareStatement("insert into Winner(winnerName) values(?)"); statement.setString(1, name); statement.executeUpdate(); statement.close(); conn.close(); System.out.println("插入成功!"); } catch (SQLException e) { e.printStackTrace(); } } } ``` 补充一下,我是想将用户输入的名字添加到数据库中,表里只有id列和Name列,id设为自增长。 现在虽然id会自动增长,但是Name列中的没有文字的,是空的,我不懂怎么回事。。。(我是新手)
EditText插入连续两个ImageSpan,但是中间不能显示文字了
如图: ![图片说明](https://img-ask.csdn.net/upload/201509/03/1441263404_350263.png) 我想在EditText插入连续的两张图片后,我想在他们中间插入文字,但是显示不出来。 我在控制台打印了此EditText的文字信息,确定是写入进去了的,但就是不知道为什么不能显示,望大神解答。 Drawable d = getResources().getDrawable(R.drawable.article_mode_avatar); // 设置高度 d.setBounds(10, 10, d.getIntrinsicWidth()/2, d.getIntrinsicHeight()/2); // 跨度底部应与周围文本的基线对齐 ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE); // 附加图片 ss.setSpan(span, 0, logo.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE); et_write.getText().insert(postion, ss);
ubuntu下的java swing应用JTextField无法输入中文
在ubuntu中安装好了图形界面,搜狗输入法,企鹅fcitx, 可以在浏览器,系统控制台等地方输入中文,并且切换成英文输入。 但是启动好swing应用后不能在文本框里输入中文,输入法显示是搜狗输入法,输入法那里也无法通过快捷键切换。 有没有遇到类似情况的啊
java robot控制鼠标键盘
public class Main { /** * @param args * @throws FileNotFoundException * @throws AWTException */ public static void main(String[] args) throws FileNotFoundException, AWTException { Robot robot; robot = new Robot(); while(true) { robot.delay(3000); robot.keyPress(KeyEvent.VK_V); robot.keyRelease(KeyEvent.VK_V); robot.keyPress(KeyEvent.VK_ENTER); robot.keyRelease(KeyEvent.VK_ENTER); } } } 将这段小代码搭成jar包,后我远程登录一台没有显示器的电脑,把jar包拷到这台没有显示器的电脑上,运行jar,并将鼠标焦点指到文本文件上,想每隔3秒输入一个v,一个回车。 我远程登录的时候,能正确运行,但是我退出登录,jar包程序还会运行,但是没有输出了。 robot控制鼠标键盘必须在有显示器的电脑上才能运行吗?
关于TinkPHP整合jqueryEasyui datagrid分页的问题
用datagrid分页显示数据,后台ThinkPHP代码怎么写? 为什么点击datagrid的下一页,datagrid不能加载刷新第2页的数据? 我的思路: ①index渲染模板 ②supplier_list.html引入的supplier_list.js利用jquery的$(document).ready(function(){$('#list0').datagrid(//此处省略代码...);});来加载datagrid的数据。 后台代码如下(index()渲染模板,read()为前台datagrid加载数据): <?php /** * Description of CustomerAction *名称:供应商控制器 * @author zhaodan */ require_once('./Conf/config.php'); import('ORG.Util.Session'); class SupplierAction extends Action{ public function index(){ $this->assign('title','供应商列表'); $this->display("Supplier:supplier_list"); } ``` //获取供应商列表 public function read(){ $supplier=M('Supplier'); //当前第几页 $pagenum=isset($_POST['page'])? intval($_POST['page']):1; //每页显示的记录数 $pagesize=isset($_POST['rows'])? intval($_POST['rows']):10; if(isset($_POST['keyword'])){ $map['name']=array('like',array('%'.$_POST['keyword'].'%')); }else{ $map['_string']='1=1'; } //import('@.ORG.Util.Page'); //$Page=new Page($total,$pagesize); //实例化分页类 传入总记录数 //进行分页数据查询 注意page方法的参数的前面部分是当前的页数,使用$_GET[p]获取 //$list2=$supplier->page($pagenum.','.$Page->listRows)->order('ctime')->select(); $list=$supplier->where($map)->limit(($pagenum-1)*$pagesize.','.$pagesize)->order('ctime')->select(); $total=$supplier->where($map)->count(); //查询满足条件的总记录数 $jsonStr='{"total":'.$total.',"rows":'.json_encode($list).'}'; echo $jsonStr; } //js代码 //设置分页插件 var p=$("#list0").datagrid('getPager'); /*分页插件*/ $(p).pagination({ pageNumber:1, //显示的页数 pageSize:10, //每页显示的大小 pageList:[10,20,30,50], beforePageText:'第', //页数文本框前显示的汉字 afterPageText:'页 共{pages}页', displayMsg:'当前显示{from}-{to}条记录 共{total}条记录', onSelectPage:function(pageNumber,pageSize){ //选择相应的页码时刷新显示的内容列表 //var queryParams=$("#list0").datagrid('options').queryParams; //queryParams.PageNumber=pageNumber; //queryParams.PageSize=pageSize; $("#list0").datagrid('reload',{page:pageNumber,rows:pageSize}); } }); ``` 点击datagrid下方的pagination控件的下一页,datagrid不能刷新显示第二页的数据?这是为什么呢?
bootstraptable-edit使用问题
![图片说明](https://img-ask.csdn.net/upload/201908/06/1565077495_685813.png) 外部的表格无法获取数据,检查contentType属性配置问题。 ``` $(function() { //初始化Table var oTable = new TableInit(); oTable.Init(); }); var TableInit = function() { var oTableInit = new Object(); //初始化Table oTableInit.Init = function() { $('#table').bootstrapTable({ url : 'list',//请求后台的URL(*) method : 'post',//请求方式(*) toolbar : '#toolbar',//工具按钮用哪个容器 striped : true,//是否显示行间隔色 cache : false,//是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*) pagination : true,//是否显示分页(*) sortable : false,//是否启用排序 sortOrder : "asc",//排序方式 queryParams : oTableInit.queryParams,//传递参数(*) sidePagination : "server",//分页方式:client客户端分页,server服务端分页(*) pageNumber : 1,//初始化加载第一页,默认第一页 pageSize : 10,//每页的记录行数(*) pageList : [ 10, 25, 50, 100 ],//可供选择的每页的行数(*) search : true,//是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大 contentType : "application/x-www-form-urlencoded", strictSearch : true, showColumns : true,//是否显示所有的列 showRefresh : true,//是否显示刷新按钮 minimumCountColumns : 2,//最少允许的列数 clickToSelect : true,//是否启用点击选中行 height : 700,//行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度 uniqueId : "id",//每一行的唯一标识,一般为主键列 showToggle : true,//是否显示详细视图和列表视图的切换按钮 cardView : false,//是否显示详细视图 detailView : false,//是否显示父子表 columns : [ { field : 'id', title : '编号' }, { field : 'name', title : '名字' }, { field : 'price', title : '价格' }, { field : 'operate', title : '操作', formatter : operateFormatter //自定义方法,添加操作按钮 }, ], rowStyle : function(row, index) { var classesArr = [ 'white', 'lightblue' ]; var strclass = ""; if (index % 2 === 0) {//偶数行 strclass = classesArr[0]; } else {//奇数行 strclass = classesArr[1]; } return { classes : strclass }; },//隔行变色 }); }; //得到查询的参数 oTableInit.queryParams = function(params) { var temp = {//这里的键的名字和控制器的变量名必须一直,这边改动,控制器也需要改成一样的 limit : params.limit,//页面大小 //pageNumber: params.pageNumber,//页码 offset : params.offset }; return temp; }; return oTableInit; }; function operateFormatter(value, row, index) {//赋予的参数 return [ '<a href="#" style="color:blue;" οnclick="edit(' + row.id + ')">编辑</a>|', '<a href="#" style="color:red;" οnclick="del(' + row.id + ')">删除</a>', ].join(''); } ``` table-edit.js ``` (function($){ 'use strict'; $.extend($.fn.bootstrapTable.defaults, { editable: false }); var BootstrapTable = $.fn.bootstrapTable.Constructor, _init = BootstrapTable.prototype.init, _initBody = BootstrapTable.prototype.initBody, _onSort = BootstrapTable.prototype.onSort, _append = BootstrapTable.prototype.append, _initHeader = BootstrapTable.prototype.initHeader ; //添加编辑表格默认属性,如何edit设置为false时,表示该列不可编辑 $.extend(true,BootstrapTable.COLUMN_DEFAULTS,{ edit:{ type:'text'//目前只支持 文本:text 下拉:select 日期:date } }); BootstrapTable.prototype.init = function () { _init.apply(this, Array.prototype.slice.apply(arguments)); var that = this; that.prevEditRow = null;//上一次编辑的行 that.columns = {};//列配置信息 that.insertRowVal = {};//新插入行的默认值 that.enableAppend = true;//允许添加新行 if (that.options.editable) { var columnObj = this['getColumns'](); $.each(columnObj,function(i,obj){ $.each(obj,function(z,col){ if(!isNaN(col.fieldIndex) && col.fieldIndex >= 0){ if(col.checkbox)col.edit = false; that.columns['column'+col.fieldIndex] = col; that.insertRowVal[col.field] = ''; } }); }); //this.initEdit(); } }; /*BootstrapTable.prototype.initHeader = function(){ _initHeader.apply(this, Array.prototype.slice.apply(arguments)); this.$container.find('.fixed-table-header').addClass('success'); };*/ BootstrapTable.prototype.initBody = function () { var that = this; _initBody.apply(this, Array.prototype.slice.apply(arguments)); if (!that.options.editable) return; this.initEdit(); //如果列是下拉框,则转换值为对应的文本 $.each(that.columns,function(indx,col){ if(col.edit && col.edit.type == 'select'){ col.edit = $.extend({},$.fn.bootstrapSelect.defaults,col.edit); if(col.edit.data.length > 0){ that.$body.find('>tr').each(function(){ if(that.getData().length < 1)return true; var rowData = that.data[$(this).data('index')];//当前点击td所在行的数据 var $td = $(this).find('td').eq(col.fieldIndex); $.each(col.edit.data,function(i,data){ if(data[col.edit.valueField] == rowData[col.field]){ $td.html(data[col.edit.textField]); } }); }); } else if(col.edit.url){ $.ajax({ url:col.edit.url, type:'post', data:col.edit.paramsType == 'json' ? JSON.stringify(col.edit.params) : col.edit.params, dataType:'json', success: function(jsonLst) { col.edit.onLoadSuccess.call(this,jsonLst); that.$body.find('>tr').each(function(){ if(that.getData().length < 1)return true; var rowData = that.data[$(this).data('index')];//当前点击td所在行的数据 var $td = $(this).find('td').eq(col.fieldIndex); $.each(jsonLst,function(i,data){ if(data[col.edit.valueField] == rowData[col.field]){ $td.html(data[col.edit.textField]); } }); }); col.edit.data = jsonLst; col.edit.url = null; }, error: function(xhr, textStatus, errorThrown){ col.edit.onLoadError.call(this); col.edit.data = []; col.edit.url = null; throw col.field+' 列下拉框数据加载失败'; } }); } } }); }; //根据行号删除指定行 BootstrapTable.prototype.removeRow = function (rowNum) { var that = this; var len = that.options.data.length; if (isNaN(rowNum)){ return; } if(that.$body.find('.editable-select').data('index') != rowNum){ recover(that); } //删除数据 that.options.data.splice(rowNum,1); if (len === that.options.data.length){ return; } var oldClass = {};//保存被标记修改的样式 that.$body.find('>tr').each(function(indx){ if($(this).hasClass('editable-modify')){ if(indx > rowNum){ oldClass[indx-1] = 'editable-modify'; } else{ oldClass[indx] = 'editable-modify'; } } }); //this.prevEditRow = null; //this.$body.find('>tr').removeClass('editable-select'); that.initBody(); //将标记改变过行的样式从新设置回去 for(var key in oldClass){ that.$body.find('>tr').eq(key).addClass(oldClass[key]); } //this.initEdit(); //没有数据时给提示加上样式 if(that.getData().length < 1){ that.$body.find('>tr').addClass('no-records-found'); } }; BootstrapTable.prototype.append = function (){ var that = this; //if(!that.enableAppend)return; var oldClass = {};//保存被标记修改的样式 that.$body.find('>tr').each(function(indx){ if($(this).hasClass('editable-modify') || $(this).hasClass('editable-insert')){ oldClass[indx] = 'editable-modify'; } }); arguments[0] = $.extend({},that.insertRowVal,arguments[0]); _append.apply(this,Array.prototype.slice.apply(arguments)); if (that.options.editable){ //that.initEdit(); setTimeout(function (){ //将标记改变过行的样式从新设置回去 for(var key in oldClass){ that.$body.find('>tr').eq(key).addClass(oldClass[key]); } that.$body.find('>tr:last').addClass('editable-modify'); that.$body.find('>tr:last').addClass('editable-insert');//双重保险,防止在快速点击添加时,为给新增行设置editable-modify属性 that.$body.find('>tr:last').click(); },60); } }; BootstrapTable.prototype.onSort = function () { _onSort.apply(this, Array.prototype.slice.apply(arguments)); var that = this; if (that.options.editable) { this.initEdit(); } }; BootstrapTable.prototype.getData = function () { return (this.searchText || this.searchCallback) ? this.data : this.options.data; }; BootstrapTable.prototype.getColumns = function () { return this.options.columns; }; /** * 获取有被修改过行的值 */ BootstrapTable.prototype.getModiDatas = function (){ var that = this; var datas = []; that.$body.find('.editable-modify').each(function(){ if(that.data[$(this).data('index')]){ datas.push(that.data[$(this).data('index')]); } }); return datas; }; /** * 获取指定列的和,参数为列下标 */ BootstrapTable.prototype.getColTotal = function (num){ var retVal = 0; this.$body.find('>tr').each(function(){ var colNum = 0; if($(this).hasClass('editable-select')){ colNum = $(this).find('td').eq(num).find('input').val(); } else{ colNum = $(this).find('td').eq(num).html(); } if(!isNaN(colNum)){//是数字才做想加 retVal += Number(colNum); } }); return retVal; }; /** * 创建可编辑表格 */ BootstrapTable.prototype.initEdit = function(){ var that = this, data = this.getData(); //this.$body.find('> tr').unbind('click').on('click' //this.$body.delegate('>tr','click' this.$body.find('> tr').unbind('click').on('click',function(){ var $tr = $(this); if($tr.hasClass('editable-select') || data.length < 1 || $tr.hasClass('no-records-found')){ return; } $tr.removeClass('no-records-found'); recover(that); that.prevEditRow = $tr; $tr.addClass('editable-select');//给当前编辑行添加样式,目前样式为空只做标识使用 that.$body.find('> tr').not(this).removeClass('editable-select'); $tr.find('td').closest('td').siblings().html(function(i,html){ initTrClick(that,this); }); }); //鼠标点击事件 $(document).bind('mousedown',function(event){ var $target = $(event.target); if(!($target.parents().andSelf().is(that.$body)) && !($target.parents().andSelf().is($('.datetimepicker')))){ setTimeout(function () { recover(that); //that.prevEditRow = null; //that.$body.find('> tr').removeClass('editable-select'); },10); }; }); }; $.fn.bootstrapTable.methods.push('getColumns', 'getModiDatas','removeRow','getColTotal'); /** * 给tr添加点击事件 */ function initTrClick(that,_this){ that.enableAppend = true; var $td = $(_this); var $tr = $td.parent(); var rowData = that.data[$tr.data('index')];//当前点击td所在行的数据 var tdIndex = $tr.children().index($td);//当前点击的td下标 var tdOpt = that.columns['column'+tdIndex]; if(!tdOpt.edit || typeof tdOpt.edit != 'object'){ return ; } $td.data('field',tdOpt.field); if(!$td.data('oldVal')){ $td.data('oldVal',$.trim(rowData[tdOpt.field])); } var height = $td.innerHeight() - 3; var width = $td.innerWidth() - 2; $td.data('style',$td.attr('style'));//保存原来的样式 $td.attr('style','margin:0px;padding:1px!important;'); var placeholder = ''; if(tdOpt.edit.required == true){ placeholder = '必填项'; } var value = rowData[tdOpt.field] == null || rowData[tdOpt.field] == ''?'':rowData[tdOpt.field]; $td.html('<div style="margin:0;padding:0;overflow:hidden;border:solid 0px red;height:'+(height)+'px;width:'+(width)+'px;">' +'<input type="text" placeholder="'+placeholder+'" value="'+value+'" style="margin-left: 0px; margin-right: 0px; padding-top: 1px; padding-bottom: 1px; width:100%;height:100%">' +'</div>'); $td.width(width); var $input = $td.find('input'); if(!tdOpt.edit.type || tdOpt.edit.type == 'text'){ if(tdOpt.edit['click'] && typeof tdOpt.edit['click'] === 'function'){ $input.unbind('click').bind('click',function(event){ tdOpt.edit['click'].call(this,event); }); } if(tdOpt.edit['focus'] && typeof tdOpt.edit['focus'] === 'function'){ $input.unbind('focus').bind('focus',function(event){ tdOpt.edit['focus'].call(this,event); }); } $input.unbind('blur').on('blur',function(event){ if(tdOpt.edit['blur'] && typeof tdOpt.edit['blur'] === 'function'){ tdOpt.edit['blur'].call(this,event); } }); } else if(tdOpt.edit.type == 'select'){ $input.bootstrapSelect(tdOpt.edit); } else if(tdOpt.edit.type == 'date'){ $td.html('<div style="margin:0;padding:0;overflow:hidden;border:solid 0px red;height:'+(height)+'px;width:'+(width)+'px;" class="input-group date form_datetime" data-link-field="dtp_editable_input">' +'<input class="form-control" type="text" value="'+value+'">' +'<span class="input-group-addon"><span class="glyphicon glyphicon-th"></span></span>' +'</div>' +'<input type="hidden" id="dtp_editable_input" value="'+value+'"/>' ); that.$body.find('.form_datetime').datetimepicker({ weekStart: 1, todayBtn: 1, autoclose: 1, todayHighlight: 1, startView: 2, forceParse: 0, language:'zh-CN', format: 'yyyy-mm-dd hh:ii:ss', pickerPosition: 'bottom-left', showMeridian: 1 }); } } /** * 恢复tr,使之处于不可编辑状态 */ function recover(that){ var isModi = false;//判断行值是否变动过 if(that.prevEditRow != null){ that.prevEditRow.find('td').closest('td').siblings().html(function(i,html){ $(this).attr('style',$(this).data('style')); var textVal = $(this).find('input[type="text"]').val(); var hiddenVal = $(this).find('input[type="hidden"]').val(); if(typeof $(this).find('input[type="text"]').bootstrapSelect('getText') != 'object'){ $(this).find('input[type="text"]').bootstrapSelect('destroy'); } if(textVal != undefined){ if($(this).data('oldVal') != (hiddenVal?hiddenVal:$.trim(textVal)) && $(this).data('field')) { that.data[that.prevEditRow.data('index')][$(this).data('field')] = hiddenVal?hiddenVal:$.trim(textVal); isModi = true; } if(that.columns['column'+i].edit.required == true){ if(textVal == null || textVal == ''){ that.enableAppend = false; return '<span style="color:red;">必填项不能为空</span>'; } } return $.trim(textVal); } }); //新值跟旧值不匹配证明被改过 if(isModi || that.prevEditRow.hasClass('editable-insert')){ that.prevEditRow.addClass('editable-modify'); } else{ that.prevEditRow.removeClass('editable-modify'); } that.prevEditRow = null; that.$body.find('> tr').removeClass('editable-select'); } } })(jQuery); ``` 哪位大神能帮忙解决下
谁来帮帮我运行android的时候出现这个问题怎么解决呢,回答有重赏。。。。。大神
05-20 05:07:15.757: W/dalvikvm(668): threadid=1: thread exiting with uncaught exception (group=0x409c01f8) 05-20 05:07:15.788: E/AndroidRuntime(668): FATAL EXCEPTION: main 05-20 05:07:15.788: E/AndroidRuntime(668): java.lang.NullPointerException 05-20 05:07:15.788: E/AndroidRuntime(668): at com.just.javacv.FaceDecetionForTest.loadTrainImageData(Androidbs2Activity.java:111) 05-20 05:07:15.788: E/AndroidRuntime(668): at com.just.javacv.Androidbs2Activity$1.onClick(Androidbs2Activity.java:42) 05-20 05:07:15.788: E/AndroidRuntime(668): at android.view.View.performClick(View.java:3511) 05-20 05:07:15.788: E/AndroidRuntime(668): at android.view.View$PerformClick.run(View.java:14105) 05-20 05:07:15.788: E/AndroidRuntime(668): at android.os.Handler.handleCallback(Handler.java:605) 05-20 05:07:15.788: E/AndroidRuntime(668): at android.os.Handler.dispatchMessage(Handler.java:92) 05-20 05:07:15.788: E/AndroidRuntime(668): at android.os.Looper.loop(Looper.java:137) 05-20 05:07:15.788: E/AndroidRuntime(668): at android.app.ActivityThread.main(ActivityThread.java:4424) 05-20 05:07:15.788: E/AndroidRuntime(668): at java.lang.reflect.Method.invokeNative(Native Method) 05-20 05:07:15.788: E/AndroidRuntime(668): at java.lang.reflect.Method.invoke(Method.java:511) 05-20 05:07:15.788: E/AndroidRuntime(668): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 05-20 05:07:15.788: E/AndroidRuntime(668): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 05-20 05:07:15.788: E/AndroidRuntime(668): at dalvik.system.NativeStart.main(Native Method) package com.just.javacv; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.Arrays; import com.googlecode.javacv.cpp.opencv_core.CvMat; import com.googlecode.javacv.cpp.opencv_core.CvScalar; import com.googlecode.javacv.cpp.opencv_core.IplImage; import com.just.util.FileUtil; import static com.googlecode.javacv.cpp.opencv_core.*; import static com.googlecode.javacv.cpp.opencv_highgui.*; public class Androidbs2Activity extends Activity { private Button button; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); button=(Button)this.findViewById(R.id.button1); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub FaceDecetionForTest faceDecetion = new FaceDecetionForTest(); //项目根目录下的train文件夹中,保存有训练样本orl图像文件200张 String str1 = ".//train"; String[] photos = FileUtil.readImageFromDir(str1); //加载训练样本 faceDecetion.loadTrainImageData(photos); faceDecetion.doPCA(); System.out.println("特征矩阵的大小为:rows="+faceDecetion.result.rows()+",cols="+faceDecetion.result.cols()); String testImage = ".//test//orl_022_007.bmp"; faceDecetion.loadTestImageData(testImage); //显示识别结果 // faceDecetion.showResult(faceDecetion.photos, testImage); System.out.println("识别结果文件路径:"+faceDecetion.getResultPhotoPath()); //将训练样本的特征矩阵写入文本文件中 try { FileUtil.writeMatToFile(faceDecetion.getResult(), ".//data//cvMat.txt"); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } // CvMat mat = FileUtil.readerMatFromFile(".//data//cvMat.txt"); } }); } } /** * 人脸识别图像PCA降维处理类,该类可加载某一文件夹中的图像,进行PCA降维生成特征矩阵 * @author Administrator * */ class FaceDecetionForTest{ //待训练的数据 private CvMat trainImagesRow; //待识别的数据 private CvMat testImagesRow; //降维后的特征矩阵 CvMat result; //测试样本得到的特征向量 private CvMat result2; private CvMat avg; private CvMat eigenVectors; //训练样本图像路径的集合 private ArrayList<String> photos; public FaceDecetionForTest() { //初始化数据 this.trainImagesRow = null; this.testImagesRow = null; this.result = new CvMat(); this.result2 = new CvMat(); this.avg = new CvMat(); this.eigenVectors = new CvMat(); this.photos = new ArrayList<String>(); } /** * 加载训练图片 * @param imageList */ public void loadTrainImageData(String[] photoArray) { //将读取到的图像路径保存在photos中,一边识别时按序号找到文件路径 for (int i = 0; i < photoArray.length; i++) { photos.add(photoArray[i]); } //按照图像文件路径,将图像加载为IplImage数据,并按顺序保存至faces中 ArrayList<IplImage> faces = new ArrayList<IplImage>(); for (int i = 0; i < photoArray.length; i++) { IplImage tempImage = cvLoadImage(photoArray[i],0); faces.add(tempImage); } //获取训练样本的大小rows*cols int rows = faces.size(); int cols = faces.get(0).width()*faces.get(0).height(); //设定训练样本的矩阵的大小和数据类型 trainImagesRow = cvCreateMat(rows,cols,CV_32FC1); //在控制台输出训练样本的大小 System.out.println("训练样本库的大小为:rows="+rows+",cols="+cols); //输出训练样本的个数 System.out.println("训练样本的个数为facesSize="+faces.size()); System.out.println("单个训练样本的大小为:rows="+faces.get(0).height()+",cols="+faces.get(0).width()); //循环获取faces中的数据,将IplImage转换为CvMat后加载至训练样本矩阵中 for (int i = 0; i < faces.size(); i++) { IplImage image = faces.get(i); //根据图像的大小生成同样大小的矩阵 CvMat mat = cvCreateMat(image.height(), image.width(), CV_32FC1); //将图像数据转换为矩阵保存 cvConvert(image, mat); int index = 0; //将一幅图像图像转换为 训练矩阵中的一行 保存 for (int j2 = 0; j2 < mat.rows(); j2++) { for (int k = 0; k < mat.cols(); k++) { trainImagesRow.put(i, index, mat.get(j2, k)); index++; } } } } /** * 加载测试样本 * @param imagePath 测试样本图像文件的路径 */ public void loadTestImageData(String imagePath) { //根据图像文件的路径,将文件加载为IplImage类型 IplImage image = cvLoadImage(imagePath,0); //根据image生成同样大小的测试样本矩阵 testImagesRow = cvCreateMat(1, image.width()*image.height(), CV_32FC1); //将图像数据保存为CvMat后加载至测试样本矩阵中 CvMat mat = cvCreateMat(image.height(), image.width(), CV_32FC1); cvConvert(image, mat); int index = 0; for (int i = 0; i < mat.rows(); i++) { for (int j = 0; j < mat.cols(); j++) { testImagesRow.put(0,index,mat.get(i,j)); index++; } } //按照测试样本的大小,生成测试样本特征向量的大小 () result2 = cvCreateMat(testImagesRow.rows(), result.cols(), CV_32FC1); System.out.println("测试样本特征向量的大小rows="+result2.rows()+",cols="+result2.cols()); //生成测试样本特征向量 cvProjectPCA(testImagesRow, avg, eigenVectors, result2); } public void doPCA(){ System.out.println("doPCA……start"); avg = cvCreateMat(1, trainImagesRow.cols(), CV_32FC1); //训练特征向量 CvMat eigenValues = cvCreateMat(1, Math.min(trainImagesRow.rows(), trainImagesRow.cols()), CV_32FC1); eigenVectors = cvCreateMat(Math.min(trainImagesRow.rows(), trainImagesRow.cols()), trainImagesRow.cols(), CV_32FC1); //取特征向量的前P个特征值,作为比较结果 result = cvCreateMat(trainImagesRow.rows(), Math.min(trainImagesRow.rows(), trainImagesRow.cols()), CV_32FC1); cvCalcPCA(trainImagesRow, avg, eigenValues, eigenVectors, CV_PCA_DATA_AS_ROW); //生成训练样本特征矩阵 cvProjectPCA(trainImagesRow, avg, eigenVectors, result); System.out.println("doPCA……over"); } /** * 显示识别结果 * @param photos 保存训练样本图像的list集合 * @param testImage 测试样本图像的路径 */ public void showResult(ArrayList<String> photos,String testImage) { //取得是被结果的类序号 int num = euclideanDistance(result, result2); //按类序号乘以类中图片的数量,获取识别结果的图像路径,显示图像 cvShowImage("result", cvLoadImage(photos.get(num*5))); //根据测试样本图像的路径,显示图像 cvShowImage("src", cvLoadImage(testImage)); cvWaitKey(5000); } /** * 获取欧式距离 * @param trainData * @param testData * @return */ public int euclideanDistance(CvMat trainData,CvMat testData) { double[] num = new double[trainData.rows()]; //获取测试样本特征向量与训练样本特征矩阵每一行的欧式距离 for (int i = 0; i < trainData.rows(); i++) { double sum = 0; for (int j = 0; j < trainData.cols(); j++) { sum += Math.pow(Math.abs(trainData.get(i, j))-Math.abs(testData.get(0, j)), 2); } num[i] = Math.sqrt(sum); } //获取欧氏距离的和中最小的类的序号 return minArrayElement(num); } private int minArrayElement(double[] array) { //将欧氏距离按类相加 double classifyArray[] = new double[array.length/5]; int count = 0; for (int i = 0; i < array.length; i++) { if (i%5==0&&i!=0) { count++; }else { classifyArray[count]+= array[i]; } } //求类间欧氏距离和的最小值,index为该类的序号 int index = 0; double min = classifyArray[0]; for (int i = 0; i < classifyArray.length; i++) { if (min>classifyArray[i]) { min = classifyArray[i]; index = i; } } return index; } /** * 获取识别结果的文件路径 * @return */ public String getResultPhotoPath() { int num = euclideanDistance(result, result2); return photos.get(num*5); } public CvMat getResult() { return result; } public void setResult(CvMat result) { this.result = result; } }
Java的GroupLayout问题,设置组件的问题
代码显示没有错误,但是运行的时候老是在控制台显示错误,错误提示如下《:Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: javax.swing.JLabel[,0,0,0x0,invalid,alignmentX=0.0,alignmentY=0.0,border=,flags=8388608,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,horizontalAlignment=LEADING,horizontalTextPosition=TRAILING,iconTextGap=4,labelFor=,text=账号登录名:,verticalAlignment=CENTER,verticalTextPosition=CENTER] is not attached to a vertical group》 当然这个是我认为比较有依据的一句话 ![图片说明](https://img-ask.csdn.net/upload/201605/05/1462456424_680897.png) 源代码如下: public class AddAccount extends JPanel{ /** * */ private static final long serialVersionUID = 1L; //public static AddAccount addAccount; JLabel lblId,lblLoginName,lblPassword,lblRealName,lblType;//设置地址,登录名,登录密码,真实姓名, JLabel lblIdMess,lblNameMess,lblPassMess,lblRealMess;// JTextField txtId,txtName,txtRealName; JPasswordField txtPassword; JComboBox cboType; JButton btnOk,btnReset; public AddAccount(){ initComponent(); } public void initComponent(){ this.setPreferredSize(new Dimension(600,0));//设置初始大小 lblId=new JLabel("账号编号:"); lblLoginName=new JLabel("账号登录名:"); lblPassword=new JLabel(" 登录密码 :"); lblRealName=new JLabel(" 真实姓名 :"); lblType=new JLabel(" 账号类型 :"); //设置JLabel txtId=new JTextField(); txtName=new JTextField(); txtRealName=new JTextField(); //设置JTextField()方法 txtPassword=new JPasswordField(); String [] items =new String[]{"管理员","业务员","操作员"};//创建账号类型 cboType = new JComboBox(items); btnOk=new JButton("确定"); btnReset=new JButton("重置"); lblIdMess=new JLabel("编号由系统生成,不用修改"); lblNameMess=new JLabel("账号长度在5到20位之间"); lblPassMess=new JLabel("密码长度必须在5到20位之间"); lblRealMess=new JLabel("姓名长度必须在1到20位之间"); //F/GroupLayout创建文本框的横竖位置 GroupLayout group=new GroupLayout(this); GroupLayout.SequentialGroup hgroup=group.createSequentialGroup(); hgroup.addGroup(group.createParallelGroup(Alignment.LEADING) .addComponent(lblId,GroupLayout.PREFERRED_SIZE,100,GroupLayout.PREFERRED_SIZE) .addComponent(lblLoginName,GroupLayout.PREFERRED_SIZE,100,GroupLayout.PREFERRED_SIZE)//登录账号 .addComponent(lblPassword)//登录密码 .addComponent(lblRealName)//真实姓名 .addComponent(lblType) ); hgroup.addGroup(group.createParallelGroup(Alignment.CENTER)// .addComponent(txtId,GroupLayout.PREFERRED_SIZE,100,GroupLayout.PREFERRED_SIZE) .addComponent(txtName) .addComponent(txtPassword) .addComponent(txtRealName) .addComponent(cboType) .addGroup(group.createParallelGroup()) .addComponent(btnOk) .addComponent(btnReset) ); hgroup.addGroup(group.createSequentialGroup() .addComponent(lblIdMess) .addComponent(lblNameMess) .addComponent(lblPassMess) .addComponent(lblRealMess)); // GroupLayout.SequentialGroup vgroup=group.createSequentialGroup(); vgroup.addGroup(group.createParallelGroup(Alignment.CENTER) .addComponent(lblId) .addComponent(txtId) .addComponent(lblIdMess) ); vgroup.addGroup(group.createParallelGroup(Alignment.CENTER) .addComponent(lblLoginName) .addComponent(txtName) .addComponent(lblNameMess) ); vgroup.addGroup(group.createParallelGroup(Alignment.CENTER) .addComponent(lblPassword) .addComponent(txtPassword) .addComponent(lblPassMess) ); vgroup.addGroup(group.createParallelGroup(Alignment.CENTER) .addComponent(lblRealName) .addComponent(txtRealName) // .addComponent(lblRealMess) ); vgroup.addGroup(group.createParallelGroup(Alignment.CENTER) .addComponent(lblType) .addComponent(cboType) ); vgroup.addGroup(group.createParallelGroup(Alignment.CENTER) .addComponent(btnOk) .addComponent(btnReset) ); group.setHorizontalGroup(hgroup); group.setVerticalGroup(hgroup); this.setLayout(group); }
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私有的数
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少读者留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!!!那我在这里只能说:因为你没用,所以你没用!!! 这里主要介绍的是思路,不是天气预报!不是天气预报!!不是天气预报!!!天气预报只是用于举例。请各位不要再刚了!!! 下面是我会用到的两个场景: 每日下
面试官问我:什么是消息队列?什么场景需要他?用了会出现什么问题?
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了无数
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
《阿里巴巴开发手册》读书笔记-编程规约
Java编程规约命名风格 命名风格 类名使用UpperCamelCase风格 方法名,参数名,成员变量,局部变量都统一使用lowerCamelcase风格 常量命名全部大写,单词间用下划线隔开, 力求语义表达完整清楚,不要嫌名字长 ...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple/ 
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca
Python爬虫精简步骤1 获取数据
爬虫的工作分为四步: 1.获取数据。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。 2.解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。 3.提取数据。爬虫程序再从中提取出我们需要的数据。 4.储存数据。爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。 这一篇的内容就是:获取数据。 首先,我们将会利用一个强大的库——requests来获取数据。 在电脑上安装
Python绘图,圣诞树,花,爱心 | Turtle篇
1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle() circle.shape('circle') circle.color('red') circle.speed('fastest') circle.up() square = turtle.Turtle()
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ......
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
别低估自己的直觉,也别高估自己的智商
所有群全部吵翻天,朋友圈全部沦陷,公众号疯狂转发。这两周没怎么发原创,只发新闻,可能有人注意到了。我不是懒,是文章写了却没发,因为大家的关注力始终在这次的疫情上面,发了也没人看。当然,我...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。   再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。   下文是原回答,希望能对你能有所启发。   如果我说,这个世界上人真的分三六九等,
为什么听过很多道理,依然过不好这一生?
记录学习笔记是一个重要的习惯,不希望学习过的东西成为过眼云烟。做总结的同时也是一次复盘思考的过程。 本文是根据阅读得到 App上《万维钢·精英日课》部分文章后所做的一点笔记和思考。学习是一个系统的过程,思维模型的建立需要相对完整的学习和思考过程。以下观点是在碎片化阅读后总结的一点心得总结。
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合
如何优雅地打印一个Java对象?
你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。虽然已经写了十多年的 Java 代码,但仍然觉得自己是个菜鸟(请允许我惭愧一下)。 在一个月黑风高的夜晚,我思前想后,觉得再也不能这么蹉跎下去了。于是痛下决心,准备通过输出的方式倒逼输入,以此来修炼自己的内功,从而进阶成为一名真正意义上的大神。与此同时,希望这些文章能够帮助到更多的读者,让大家在学习的路上不再寂寞、空虚和冷。 ...
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计
Linux 命令(122)—— watch 命令
1.命令简介 2.命令格式 3.选项说明 4.常用示例 参考文献 [1] watch(1) manual
Linux 命令(121)—— cal 命令
1.命令简介 2.命令格式 3.选项说明 4.常用示例 参考文献 [1] cal(1) manual
记jsp+servlet+jdbc实现的新闻管理系统
1.工具:eclipse+SQLyog 2.介绍:实现的内容就是显示新闻的基本信息,然后一个增删改查的操作。 3.数据库表设计 列名 中文名称 数据类型 长度 非空 newsId 文章ID int 11 √ newsTitle 文章标题 varchar 20 √ newsContent 文章内容 text newsStatus 是否审核 varchar 10 news...
Python新型冠状病毒疫情数据自动爬取+统计+发送报告+数据屏幕(三)发送篇
今天介绍的项目是使用 Itchat 发送统计报告 项目功能设计: 定时爬取疫情数据存入Mysql 进行数据分析制作疫情报告 使用itchat给亲人朋友发送分析报告(本文) 基于Django做数据屏幕 使用Tableau做数据分析 来看看最终效果 目前已经完成,预计2月12日前更新 使用 itchat 发送数据统计报告 itchat 是一个基于 web微信的一个框架,但微信官方并不允
相关热词 c# 识别回车 c#生成条形码ean13 c#子控制器调用父控制器 c# 写大文件 c# 浏览pdf c#获取桌面图标的句柄 c# list反射 c# 句柄 进程 c# 倒计时 线程 c# 窗体背景色
立即提问