JAVA程序自动刷新的实现。

开发了一个c/s的JAVA项目,在点击按钮后程序在控制台显示的正常运行,但在窗口中却没有显示对应的提示信息,要最小化一下窗口才能显示。所以要怎么让JAVA自动刷新才能让窗口的内容正常响应按钮的事件操作?
比如我点击图中的“文献导入”按钮,本来下一步会在窗口中显示导入进度的进度条,但是进度条要在最小化窗口再还原后才能显示。要怎么解决啊?![图片说明](https://img-ask.csdn.net/upload/201704/27/1493255327_50707.png)图片说明

3个回答

你的加载内容的代码写在什么事件里的?paint还是size里了

图片说明

图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Java工程如何自动刷新?

在工程目录下上传了图片,但是不刷新目录 读取不到?怎么解决呢

java当数据库改变的时候,自动刷新页面。

在线等~~~~~ 做一个项目要求数据库改变的时候自动刷新页面,找了一下资料有两种方法。 1,定时去查数据库然后刷新 2,数据库自己推送 求大神详借一下俩种或一种。

java 的桌面程序怎么样才能自动的更新?

比如像一些桌面程序一样,发现了新的更新的版本或者新的更新组件,可以自动下载下来,并且自动安装,不知道java的左面能不能做成这样的,怎么做?具体的思路是怎样的?请知道的大哥门指教。。。。

java项目运行页面一直进行刷新

我将java项目放入另一个服务用tomcat运行后打开的页面一直在闪,但是这个项目在我本地运行却是正常的,另一个服务器系统是Windows server 2012,JDK与我本地JDK不同会是因为这个的影响吗?

java 如何实现模拟登陆智联或者前程无忧 并且将当前帐号其中的所有发布中的职位刷新。

java代码, 如何实现模拟登陆智联或者前程无忧 并且将当前帐号其中的所有发布中的职位刷新。有几页刷新几页。 最好有详细代码

jsp 选中后自动刷新,取消不刷新

Java,jsp,servlet 写的程序, 我想搞个checkbox,当选择以后,网页10秒自动刷新,当取消选择后,停止刷新, 一个jsp页面: 有个选择框定时刷新,当我选中后,就执行每隔10秒刷新一次当前页面(即执行当前的查询条件进行查询),取消后,不执行,最好无闪烁刷新。求代码。着急

IO流中的自动刷新有什么意义吗?

比如字符缓冲输出流中加入flush(),和不加入flush()有什么区别吗? 同样的打印流中的println()实现的自动刷新有什么实际的意义吗?对这个有点不是很理解,希望有大神可以帮忙解惑,不胜感激!

Java程序没有错,但是Console有问题,没运行结果(秒表)

import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.DecimalFormat; //import java.util.TimerTask; import javax.swing.Timer; import javax.swing.*; public class StopwatchFrame extends JFrame implements ActionListener { private static final long serialVersionUID = -1947098583246834192L; JButton startButton; //启动按钮 JButton stopButton; //暂停按钮 JButton countButton; //完成按钮 JButton resetButton; //复位按钮 JLabel timeLabel; JTextArea resultArea; Timer myTimer; int minute; //分 int second; //秒 int donknow; //秒后的单位 int numberFinish; //记录的次数 StopwatchFrame(String s) { super(s); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container contentPane = getContentPane(); contentPane.setLayout(new CardLayout(4,4)); JPanel mainPanel = new JPanel(new BorderLayout()); JPanel resultPanel = new JPanel(new CardLayout(4,4)); JPanel timePanel = new JPanel(new CardLayout(45,4)); //JPanel timeFlowPanel = new JPanel(new FlowLayout()); JPanel buttonCardPanel = new JPanel(new CardLayout(4,4)); JPanel buttonPanel = new JPanel(new GridLayout(4,1,0,3)); JPanel westPanel = new JPanel(new BorderLayout()); startButton = new JButton("开始/继续"); stopButton = new JButton("暂停"); countButton = new JButton("计数"); resetButton = new JButton("复位"); timeLabel = new JLabel("00:00:00"); timeLabel.setFont(new Font("微软雅黑",Font.PLAIN,35)); timeLabel.setAlignmentX(JLabel.CENTER_ALIGNMENT); timeLabel.setAlignmentY(JLabel.CENTER_ALIGNMENT); resultArea = new JTextArea(); resultArea.setEditable(true); resultArea.setLineWrap(false); resultArea.setColumns(10); buttonPanel.add(startButton); buttonPanel.add(stopButton); buttonPanel.add(resetButton); buttonPanel.add(countButton); buttonCardPanel.add(buttonPanel); timePanel.add(timeLabel); resultPanel.add(new JScrollPane(resultArea)); westPanel.add(buttonCardPanel,BorderLayout.CENTER); mainPanel.add(timePanel,BorderLayout.NORTH); mainPanel.add(westPanel,BorderLayout.CENTER); mainPanel.add(resultPanel,BorderLayout.WEST); contentPane.add(mainPanel); myTimer = new Timer(10,this); startButton.addActionListener(this); stopButton.addActionListener(this); countButton.addActionListener(this); resetButton.addActionListener(this); this.minute = 0; this.second = 0; this.donknow = 0; this.numberFinish=0; setSize(250,300); setResizable(false); //禁止改变窗口大小 setLocationRelativeTo(null); // 在屏幕中心弹出窗口 setVisible(true); } public void actionPerformed(ActionEvent e) { if(e.getSource()==startButton){ myTimer.start(); } else if(e.getSource()==stopButton){ myTimer.stop(); } else if(e.getSource()==countButton){ this.numberFinish++; DecimalFormat myFormat = new DecimalFormat("00"); this.resultArea.append(" 第"+this.numberFinish+": "+myFormat.format(this.minute)+":"+ myFormat.format(this.second)+":"+myFormat.format(this.donknow)+"\r\n"); } else if(e.getSource()==resetButton){ myTimer.stop(); this.minute = 0; this.second = 0; this.donknow = 0; this.numberFinish=0; timeLabel.setText("00:00:00"); //myTimer.start(); //resultArea.setText(""); } else if(e.getSource()==myTimer) { this.donknow++; this.second += this.donknow/100; this.minute += this.second/60; this.donknow = this.donknow%100; this.second = this.second%60; this.minute =this.minute%60; DecimalFormat myFormat = new DecimalFormat("00"); this.timeLabel.setText(myFormat.format(this.minute)+":"+ myFormat.format(this.second)+":"+myFormat.format(this.donknow)); } } public static void main(String args[]) { @SuppressWarnings("unused") StopwatchFrame myFrame = new StopwatchFrame("秒表"); } }

使用java static做缓存 如何定时清理重置static数据

调用外部接口返回数转json加处理需要两分钟,但是数据变化不会太大,现在希望用 缓存存起来,定时重置缓存,使用公司内部缓存工具可以做到设置超时时间如果缓存为空则调用接口且重新为缓存赋值,但缓存失效时总会存在需要直接访问接口而导致访问太慢,所以我想是不是可以用static对数据做内存缓存,思路:用定时任务定时为静态变量重置赋值,但目前遇到如下几个疑问: 1.static变量如何回收,如果我先给变量赋予一个json对象1,再让变量等于另外一个json对象2,之前的对象1 jvm会做什么处理,直接回收掉还是一直留着内存中? 2.有没有其他方式做内存缓存?

java代码扫描后台数据库表自动更新树形菜单节点

最近,我接手了一个二次开发的WEB系统,是springmvc的架构,但是,当我完成了某个子模块应用程序的开发,准备把源代码布置到系统上的时候,发现,无法生成主菜单下的子菜单。上图,给大家有一个形象地认识: ![图片说明](https://img-ask.csdn.net/upload/201705/13/1494672532_638652.jpg) ![图片说明](https://img-ask.csdn.net/upload/201705/13/1494672543_788168.jpg) ,然后,先前的那个开发团队,留下的数据库,里面有2个表专门是用来更新菜单节点的,例如,我想在主菜单Node1下,增加一个 Node1.1,我必须在menu表和privilige表里增加以下的SQL语句, Insert into menu values (115, 'java books', 'java', 'Java编程语言', 'ajax', ' ',15, 7, ‘/books/page/javaBkMng’); Insert into privilege p values (1000,115 ); 这里的2张表结构分别是: menu 表 id, app_key, menu_key, txt_local, txt_en, txt_fr, parent_id, position, url privilige 表 id, menu_fk 我现在面临的困难就是,需要在这个菜单里添加一个带权限的子节点,根据遗留下来的源代码,以前的开发人员使用了with recursive cte as的递归查询,拼接SQL语句,来生成这个TREE形的菜单。 请问,我的数据库是ORACLE的,能使用with recursive cte as这样的语句吗?如果不行,用with cte(...) as可以吗?请指教如何写这段拼接SQL语句来实现这种JAVA代码自动扫描数据库表,生成新的带URL的节点,谢谢。

Javaweb项目中需要一个计时器,刷新或退出该页面时,计时器仍在跑

问题如上,要点是刷新和退出该页面时 计时器不受影响,请回答的仔细些(为了凑够30个字才能发布提问。。。)

java连接MYSQL数据库第一次可以,第二次报错

做项目在做一个用户首次登陆输入手机号码,发送随机密码的功能模块,首次点击完全没问题,系统会发送短信(中国移动的短信机的原理是连接它的数据库,插入一条数据即可)问题就出在连接数据库的问题上,再次发送,则后台报错ResultSet is from UPDATE. No Data.。 报错信息如下 ``` 严重: Exception occurred during processing request: ResultSet is from UPDATE. No Data. java.sql.SQLException: ResultSet is from UPDATE. No Data. at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:987) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:982) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:927) at com.mysql.jdbc.ResultSetImpl.next(ResultSetImpl.java:7152) at com.mysql.jdbc.ConnectionImpl.loadServerVariables(ConnectionImpl.java:3867) at com.mysql.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:3404) at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2385) at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2154) at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:792) at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at com.mysql.jdbc.Util.handleNewInstance(Util.java:411) at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:381) at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:305) at java.sql.DriverManager.getConnection(DriverManager.java:582) at java.sql.DriverManager.getConnection(DriverManager.java:185) at DAO.dbconnection2.<init>(dbconnection2.java:16) at action.testsendaction.execute(testsendaction.java:38) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) ``` dbconnection2.java 是创建连接,代码如下: ``` package DAO; import java.sql.Connection; import java.sql.DriverManager; public class dbconnection2 { private static final String DRIVER = "com.mysql.jdbc.Driver"; private static final String URL = "jdbc:mysql://*******:3306/mas?useUnicode=true&characterEncoding=gb2312"; private static final String USER = "ywz"; private static final String PASSWORD = "yw690"; private Connection con; public dbconnection2() throws Exception{ Class.forName(DRIVER); this.con = DriverManager.getConnection(URL, USER, PASSWORD); } public Connection getConnection() { return this.con; } public void closecon() throws Exception { if(this.con != null) { try { this.con.close(); } catch(Exception e) { throw e; } } } } ``` action代码: ``` public class testsendaction extends ActionSupport{ private String list; public String getList() { return list; } public void setList(String list) { this.list = list; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } private String content; public String execute() throws Exception{ dbconnection2 dbc2 = new dbconnection2(); Statement s1 = dbc2.getConnection().createStatement(); Random ran = new Random(); String pwd = ""; for(int i=0;i<6;i++) { pwd += ran.nextInt(10)+""; } System.out.println("ranpwd="+pwd); String mess = "本信息来自工资查询系统,用于用户的首次登陆,登陆密码为:"+pwd+" ,登陆成功后,请自行修改密码。"; String send = "insert into api_mt_6(mobiles,content) values('"+list+"','"+mess+"')"; s1.executeUpdate(send); System.out.println("send:"+send); s1.close(); dbc2.closecon(); return SUCCESS; } } ``` 报错是在数据库连接的new语句上。 连接最后也有关闭。但是就是不能进行二次访问数据库。只能重启下tomcat,然后又可以登录一次,第二次也无法连接了。 找了好久都没发现原因,希望大家帮帮忙 ,谢谢了!

关于javaGUI组件update()方法

java问题:都说java swing组件中repaint()调用update(),update()调用paint(),我在继承自JFrame类里重写了update(),api里说重写update()应该在里面调用super.update()或直接在里面调用paint(),但我没有这样做,为什么在执行程序的时候却还是调用了paint()呢?求大神详细解答下

JVAV写贪吃蛇小游戏,用线程实现窗口重绘,然后用键盘指令改变小蛇的方向,请问怎么让小蛇只根据指令移动?

![图片说明](https://img-ask.csdn.net/upload/201906/05/1559710703_639058.png) 现在的程序能够实现通每隔200ms小蛇自动往前跑一格,通过键盘指令能够改变方向,但是我不想让它自动跑,只想实现给它指令它才移动,请问怎么实现? 这是蛇的活动类 ``` package com.tcs.cn; import java.awt.Color; import java.awt.Font; import java.awt.Frame; import java.awt.Graphics; import java.awt.Image; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.Timer; /** * 这个类代表贪吃蛇的活动场所 * @author * @version */ public class Yard extends Frame { /* * 画图的线程 * */ Timer timer = new Timer(); PaintThread paintThread = new PaintThread(); private boolean gameOver = false; //游戏是否结束 /** * 行数 */ public static final int ROWS = 30; /* * 列数 * */ public static final int COLS = 30; /* * 活动区域大小 * */ public static final int BLOCK_SIZE = 15; //设置显示字属性 private Font fontGameOver = new Font("宋体", Font.BOLD, 50); //分数 private int score = 0; /* * 记录开始时候的时间 * */ private long beginTime=0; /* *实例化Snake和Egg的对象 * */ Snake s = new Snake(this); Egg e = new Egg(); /* * 抽象类 Image 是表示图形图像的所有类的超类。 * 必须以特定于平台的方式获取图像。 * */ Image offScreenImage = null; /* * 此函数的功能是:设置窗口的大小、位置、可见,以及点击事件和键盘事件,最后开启了绘图线程 * */ public void launch() { /* * 指定窗口的位置,窗口的左上角的位置为(90,10).是相对父窗口的相对位置 * */ this.setLocation(90, 10); /* * 设定窗口的大小 * 宽度width:COLS*BLOCK_SIZE * 高度hight:ROWS*BLOCK_SIZE * */ this.setSize(COLS * BLOCK_SIZE, ROWS * BLOCK_SIZE); /* * 为窗口添加监听器 * */ this.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); /* * 将窗口设置可见 * */ this.setVisible(true); /* * 为窗口添加键盘事件 * */ this.addKeyListener(new KeyMonitor()); new Thread(paintThread).start(); } public static void main(String[] args) { Yard y=new Yard(); y.beginTime=System.currentTimeMillis(); y.launch(); } /* * 将变量gameOver设置为true,使得在paint()函数中将使得线程停止 * */ public void stop() { gameOver = true; } @Override public void paint(Graphics g) { /* * 获取此图形上下文的颜色 * */ Color c = g.getColor(); /* * 指定图形上下文的颜色 * */ g.setColor(Color.GRAY); /* * 用当前的颜色来填充指定的区域 * */ g.fillRect(0, 0, COLS * BLOCK_SIZE, ROWS * BLOCK_SIZE); /* * 再一次的指定颜色为:黑灰色???????为什么要再一次的设定??? * 原因在于:我们想将绘图的颜色与文字显示的不一样 * */ g.setColor(Color.DARK_GRAY); //画出横线 /* * drawLine(int x1, int y1, int x2, int y2) * 函数的功能为: * 在此图形上下文的坐标系中,使用当前颜色在点 (x1, y1) 和 (x2, y2) 之间画一条线。 * 通过下面的两个for循环就会在图形化对象上画出表格 * */ for(int i=1; i<ROWS; i++) { g.drawLine(0, BLOCK_SIZE * i, COLS * BLOCK_SIZE, BLOCK_SIZE * i); } for(int i=1; i<COLS; i++) { g.drawLine(BLOCK_SIZE * i, 0, BLOCK_SIZE * i, BLOCK_SIZE * ROWS); } g.setColor(Color.YELLOW);//设定颜色,为下面显示文字信息做准备 /* * drawString(String str, int x, int y) *使用此图形上下文的当前字体和颜色绘制由指定 string 给定的文本。 * */ g.drawString("使用说明:使用方向键控制方向,F1--停止,F2--停止后恢复,F5--重新开始" , 10, 40); g.drawString("目前分数:" + score, 10, 60); g.drawString("加分规则:每吃一个加5分,加油!" , 10, 80); g.drawString("已经使用的时间:"+(System.currentTimeMillis()-beginTime)/1000 , 10, 100); /* * 检测游戏是否结束,当游戏结束时,则提示游戏“game over”,而且将界面恢复到初始界面的状态,且终止绘图线程 * */ if(gameOver) { g.setFont(fontGameOver); g.drawString("game over!", 90, 170); g.drawString("在玩一次,请按F5", 10, 250); g.drawString(" ", 200, 230);//???这个用意何在?? paintThread.pause(); } if(score>100) { g.drawString("好棒!!!", 90, 170); g.drawString("你已经超过"+score+",继续加油", 10, 230); } /* * 将图形界面设置为刚开始的颜色 * */ g.setColor(c); s.eat(e); e.draw(g); s.draw(g); } @Override public void update(Graphics g) { if(offScreenImage == null) { /* * public Image createImage(int width, * int height) * 创建一幅用于双缓冲的、可在屏幕外绘制的图像 * */ offScreenImage = this.createImage(COLS * BLOCK_SIZE, ROWS * BLOCK_SIZE); } /* * getGraphics() *创建供绘制闭屏图像(off-screen image)使用的图形上下文。 * */ Graphics gOff = offScreenImage.getGraphics(); paint(gOff); /* * drawImage(Image img, int x, int y, ImageObserver observer) * 绘制指定图像中当前可用的图像。 * */ g.drawImage(offScreenImage, 0, 0, null); } private class PaintThread implements Runnable { private boolean running = true; private boolean pause = false; public void run() { while(running) {//线程将一直处于运行当中,只有在游戏结束的时候 if(pause) continue; else repaint();//如果组件是轻量级组件,则会尽快调用paint()方法或者是调用update() try { Thread.sleep(200); } catch (InterruptedException e) { e.printStackTrace(); } } } public void pause() { this.pause = true; } public void reStart() { this.pause = false; s = new Snake(Yard.this); gameOver = false; score=0; } public void gameOver() { running = false; } } /* * 此函数的功能为:检测我们是否按下F2,若按下,则重新启动线程,即重新开始游戏 * */ private class KeyMonitor extends KeyAdapter { @Override public void keyPressed(KeyEvent e) { int key = e.getKeyCode(); if(key == KeyEvent.VK_F5) { paintThread.reStart();//重新开始游戏 } else if(key==KeyEvent.VK_F1){ paintThread.pause=true;//暂停 } else if(key==KeyEvent.VK_F2){ paintThread.pause=false;//从暂停中恢复 } s.keyPressed(e); } } /** * 拿到所得的分数 * @return 分数 */ public int getScore() { return score; } /** * 设置所得的分数 * @param score 分数 */ public void setScore(int score) { this.score = score; } } ``` 这是小蛇类 ``` package com.tcs.cn; import java.awt.Color; import java.awt.Graphics; import java.awt.Rectangle; import java.awt.event.KeyEvent; /** * 代表蛇 * @author * */ public class Snake { /* * 头结点 * */ private Node head = null; /* * 尾结点 * */ private Node tail = null; /* * 大小 * */ private int size = 0; /* * 开始游戏时: * 初始位置:(20,30) * 初始运动方向:Dir.L * */ private Node n = new Node(20, 30, Dir.L); /* * Yard的对象属性; * */ private Yard y; /* * 构造函数 * */ public Snake(Yard y) { /* * 将初始结点给头结点和尾结点,size初始化为 1, * */ head = n; tail = n; size = 1; this.y = y; } /* * 节点类 * */ private class Node { int w = Yard.BLOCK_SIZE; int h = Yard.BLOCK_SIZE; int row , col; Dir dir = Dir.L; Node next = null; Node prev = null; Node(int row, int col, Dir dir) { this.row = row; this.col = col; this.dir = dir; } void draw(Graphics g) { Color c = g.getColor(); g.setColor(Color.BLACK); g.fillRect(Yard.BLOCK_SIZE * col, Yard.BLOCK_SIZE * row, w, h); g.setColor(c); } } // 从尾加,代码与下面一个函数的代码功能相似,这里不再分析 public void addToTail() { Node node = null; switch(tail.dir) { case L : node = new Node(tail.row, tail.col + 1, tail.dir); break; case U : node = new Node(tail.row + 1, tail.col, tail.dir); break; case R : node = new Node(tail.row, tail.col - 1, tail.dir); break; case D : node = new Node(tail.row - 1, tail.col, tail.dir); break; } tail.next = node; node.prev = tail; tail = node; size ++; } // 从头加,下面的代码比较简单,相信大家应该都能理解 public void addToHead() { Node node = null; switch(head.dir) { case L : node = new Node(head.row, head.col - 1, head.dir); break; case U : node = new Node(head.row - 1, head.col, head.dir); break; case R : node = new Node(head.row, head.col + 1, head.dir); break; case D : node = new Node(head.row + 1, head.col, head.dir); break; } // node.next = head; // head.prev = node; // head = node; /* * 上面这种写法与下面这种写法一致,不过下面这种写法我更容易理解 * */ head.prev=node; node.next=head; head=node; size ++; } public void draw(Graphics g) { if(size <= 0) return; move(); for(Node n = head; n != null; n = n.next) { n.draw(g); } } /* * 移动过程所要做的操作:在运动方向增加一个节点,在尾部减去一个节点,并且检测是否已经死亡 * */ private void move() { addToHead(); deleteFromTail(); checkDead(); } private void checkDead() { if(head.row < 2 || head.col < 0 || head.row > Yard.ROWS || head.col > Yard.COLS) { y.stop(); } /* * 头节点与身体的某一个节点相撞,也标志着结束 * */ for(Node n = head.next; n != null; n = n.next) { if(head.row == n.row && head.col == n.col) { y.stop(); } } } /* * 删除尾节点 * */ private void deleteFromTail() { if(size == 0) return; tail = tail.prev; tail.next = null; } public void eat(Egg e) { /* * boolean intersects(Rectangle r) * 确定此 Rectangle 是否与指定的 Rectangle 相交。 * 若相交,表示我们吃到了一个点 ,则导致蛇的长度变长并且在出现一个点,并且加5分,否则什么也不做 * */ if(this.getRect().intersects(e.getRect())) { e.reAppear(); this.addToHead(); //吃了加5分 y.setScore(y.getScore() + 5); } } private Rectangle getRect() { /* * 构造了一个格子大小的区域 * */ return new Rectangle(Yard.BLOCK_SIZE * head.col, Yard.BLOCK_SIZE * head.row, head.w, head.h); } /* * 接收从键盘的按键事件,然后采取相应的解决方案 * */ public void keyPressed(KeyEvent e) { int key = e.getKeyCode(); switch(key) { case KeyEvent.VK_LEFT : /* * 当按键为左的时候,只要前进方向不是右,即可转向 * */ if(head.dir != Dir.R) head.dir = Dir.L; break; case KeyEvent.VK_UP : /* * 当按键为"上",只要前进方向不是"下",就可以转向 * */ if(head.dir != Dir.D) head.dir = Dir.U; break; case KeyEvent.VK_RIGHT : /* * 当按键为"右"的时候,只要前进方向不是"左",就可以转向 * */ if(head.dir != Dir.L) head.dir = Dir.R; break; case KeyEvent.VK_DOWN : /* * 当按键为"下"的时候,只要前进方向不是"上",就可以转向 * */ if(head.dir != Dir.U) head.dir = Dir.D; break; } } } ``` 求大神解答 hen'ji

微信小程序中的wxParse

微信小程序中wxParse是不是就是把网页里的数据调用在微信中?这个过程是怎么实现的?

defaulttablemodel 刷新数据库里的数据

如下图,我页面上有一个刷新按钮,想通过那个按钮在按钮监听事件中,获取result值然后直接刷新列表。现在按钮点了没反应,不知道哪里出了问题![图片说明](https://img-ask.csdn.net/upload/201703/26/1490518781_255645.png) ``` import java.awt.Color; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.List; import javax.swing.JButton; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JTextField; import javax.swing.RowSorter; import javax.swing.SwingConstants; import javax.swing.UIManager; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableModel; import javax.swing.table.JTableHeader; import javax.swing.table.TableModel; import javax.swing.table.TableRowSorter; import org.springframework.jdbc.core.RowCallbackHandler; import com.tlxx.dao.MaterialDao; import com.tlxx.model.MaterialList; import com.tlxx.util.DbUtil; import com.tlxx.util.StringUtil; public class MaterialsFrm extends javax.swing.JInternalFrame { MaterialDao materialDao = new MaterialDao(); DbUtil dbUtil = new DbUtil(); private JTable Table; String[] COLUMN = { "物料编号", "物料名称", "规格", "包装规格", "产地", "计量单位", "库存", "单价" };// 表格的列 private Object[][] result; private DefaultTableModel model;// 声明定义表格的模型 private JTextField ItmNameTxt; private JTextField ItmIdTxt; /** * Create the frame. */ public MaterialsFrm() { setClosable(true); setIconifiable(true); setFrameIcon(null); this.setLocation(0, 0); setTitle("\u836F\u6750\u5217\u8868"); initComponents(); getContentPane().setLayout(null); } // 搜索框检索查询 private void searchActionPerformed(ActionEvent evt) { String itmName = this.ItmNameTxt.getText(); String itmId = this.ItmIdTxt.getText(); if (StringUtil.isEmpty(itmName) && StringUtil.isEmpty(itmId)) { JOptionPane.showMessageDialog(null, "<html> <font face= '宋体 ' size= '5'> <b>物料名称或编号不能为空!</b> </font> </html> "); return; } MaterialList matlist = new MaterialList(itmId, itmName); try { result = getFileStates(materialDao.search(dbUtil.getCon(), matlist)); if (result.length == 0) { JOptionPane.showMessageDialog(null, "<html> <font face= '宋体 ' size= '5'> <b>不存在该物料,请重新输入!</b> </font> </html>"); } } catch (Exception e) { e.printStackTrace(); JOptionPane.showConfirmDialog(null, "<html> <font face= '宋体 ' size= '5'> <b>查询异常,请重试或联系管理员!</b> </font> </html>"); } } // 刷新物料按钮 private void refreshActionPerformed(ActionEvent evt) { try { result = getFileStates(materialDao.selectMaterial(dbUtil.getCon())); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } model = new DefaultTableModel(result, COLUMN); Table = new JTable(); Table.setModel(model); } private void initComponents() { JScrollPane scrollPane = new JScrollPane(); scrollPane.setBounds(30, 150, 1300, 538); getContentPane().add(scrollPane); Table = new JTable(); scrollPane.setColumnHeaderView(Table); try { result = getFileStates(materialDao.selectMaterial(dbUtil.getCon())); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } JButton searchButton = new JButton("搜索"); searchButton.setBounds(610, 27, 123, 33); getContentPane().add(searchButton); searchButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { searchActionPerformed(evt); } }); JLabel label_ItemName = new JLabel("物料名称"); label_ItemName.setFont(new Font("宋体", Font.PLAIN, 20)); label_ItemName.setBounds(30, 31, 81, 33); getContentPane().add(label_ItemName); ItmNameTxt = new JTextField(); ItmNameTxt.setBounds(140, 28, 96, 33); getContentPane().add(ItmNameTxt); ItmNameTxt.setColumns(10); JLabel label_ItmID = new JLabel("物料编号"); label_ItmID.setFont(new Font("宋体", Font.PLAIN, 20)); label_ItmID.setBounds(297, 31, 81, 33); getContentPane().add(label_ItmID); ItmIdTxt = new JTextField(); ItmIdTxt.setBounds(406, 28, 96, 33); getContentPane().add(ItmIdTxt); ItmIdTxt.setColumns(10); JButton refreshButton = new JButton("刷新物料"); refreshButton.setBounds(30, 106, 123, 29); getContentPane().add(refreshButton); refreshButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent evt) { refreshActionPerformed(evt); } }); // 数字字段需要按照数值类型排序,而不是字符串类型排序。需覆盖DefaultTableModel的getColumnClass方法进行数值排序 model = new DefaultTableModel(result, COLUMN) { public Class getColumnClass(int column) { Class returnValue; if ((column >= 0) && (column < getColumnCount())) { returnValue = getValueAt(0, column).getClass(); } else { returnValue = Object.class; } return returnValue; } }; Table = new JTable() { //表格不允许被编辑 public boolean isCellEditable(int row, int column) { return false; } }; Table.setModel(model); // RowSorter方法进行表格内排序 RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(model); Table.setRowSorter(sorter); // Table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); // 设置表格大小改变自动变化模型 Table.setGridColor(Color.black);// 设置表格中网格线颜色 Table.setFont(new Font("宋体", Font.BOLD, 20));// 设置字体 DefaultTableCellRenderer cr = new DefaultTableCellRenderer();// 设置单元格居中显示 cr.setHorizontalAlignment(SwingConstants.CENTER); Table.setDefaultRenderer(Object.class, cr); JTableHeader tableHeader = Table.getTableHeader(); tableHeader.setReorderingAllowed(false);// 设置表格列不可移动 scrollPane.setViewportView(Table); pack(); } /** * @param args * the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { JFrame.setDefaultLookAndFeelDecorated(true); JDialog.setDefaultLookAndFeelDecorated(true); try { /* * 更改皮肤,点击substance.jar -> 找到org.jvnet.substance.skin这个包 -> * 将下面的SubstanceDustCoffeeLookAndFeel 替换成 * 刚刚打开的包下的任意一个“Substance....LookAndFeel”即可 */ UIManager.setLookAndFeel(new org.jvnet.substance.skin.SubstanceCremeCoffeeLookAndFeel()); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } new MaterialsFrm().setVisible(true); } }); } private Object[][] getFileStates(List list) { // 获取二维数组的方法 Object[][] types = new Object[list.size()][8]; for (int i = 0; i < list.size(); i++) { MaterialList type = (MaterialList) list.get(i); types[i][0] = type.getItmID(); types[i][1] = type.getItmName(); types[i][2] = type.getItmSpec(); types[i][3] = type.getPackSpec(); types[i][4] = type.getPlace(); types[i][5] = type.getPrice(); types[i][6] = type.getStock(); types[i][7] = type.getUnit(); } return types; } } ```

急急急,在线等,java代码能否动态修改apollo配置中心的配置项

请各位大神帮忙解决下, java代码能否动态修改apollo配置中心的配置项

java定时任务问题,每隔一段时间执行。

每天定时(时间点)往数据库中插入数据,之后每隔一个小时执行一次,总共执行三次后停止。 网上好多都是以main方法形式运行的,我要的不是这种,我要的是tomcat启动后,它自己会自动执行,不需要我手动点击运行

用jsp做一个拍卖系统,如果时间到了,怎么让他自动提交

做一个拍卖系统比方很多人竞价,如果拍卖时间到了,怎么让程序自动提交是谁拍卖成功?

如果能重来,我不会选择北漂——初见北京

一个人走的路

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

我说我不会算法,阿里把我挂了。

不说了,字节跳动也反手把我挂了。

2020年大厂Java面试前复习的正确姿势(800+面试题答案解析)

前言 个人觉得面试也像是一场全新的征程,失败和胜利都是平常之事。所以,劝各位不要因为面试失败而灰心、 丧失斗志。也不要因为面试通过而沾沾自喜,等待你的将是更美好的未来,继续加油! 本篇分享的面试题内容包括:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Redis、MySQL、Spring、SpringBoot、SpringCloud、RabbitMQ...

抖音上很火的时钟效果

反正,我的抖音没人看,别人都有几十万个赞什么的。 发到CSDN上来,大家交流下~ 主要用到原生态的 JS+CSS3。 具体不解释了,看注释: &lt;!DOCTYPE html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Title&lt;/tit...

记录下入职中软一个月(外包华为)

我在年前从上一家公司离职,没想到过年期间疫情爆发,我也被困在家里,在家呆着的日子让人很焦躁,于是我疯狂的投简历,看面试题,希望可以进大公司去看看。 我也有幸面试了我觉得还挺大的公司的(虽然不是bat之类的大厂,但是作为一名二本计算机专业刚毕业的大学生bat那些大厂我连投简历的勇气都没有),最后选择了中软,我知道这是一家外包公司,待遇各方面甚至不如我的上一家公司,但是对我而言这可是外包华为,能...

又出事了?网站被攻击了?高中生?

北京时间2020年3月27日9点整,如往常一样来到公司,带开电脑,正准备打开Github网站看一会源代码,再开始手头的工作。哟吼,一直打不开,一直出现如下页面: 我想很多网友也尝到了甜头,各大技术群炸开了锅,据网友反馈有攻击者正在发起大规模的中间人挟持,京东和Github等网站等网站都受到了影响。 什么是中间中间人挟持呢? 简而言之,就是攻击者在数据网络传输的过程中,截获传输过程中的数据并篡改...

培训班出来的人后来都怎么样了?(二)

接着上回说,培训班学习生涯结束了。后面每天就是无休止的背面试题,不是没有头脑的背,培训公司还是有方法的,现在回想当时背的面试题好像都用上了,也被问到了。回头找找面试题,当时都是打印下来天天看,天天背。 不理解呢也要背,面试造飞机,上班拧螺丝。班里的同学开始四处投简历面试了,很快就有面试成功的,刚开始一个,然后越来越多。不知道是什么原因,尝到胜利果实的童鞋,不满足于自己通过的公司,嫌薪水要少了,选择...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

工作八年,月薪60K,裸辞两个月,投简历投到怀疑人生!

近日,有网友在某职场社交平台吐槽,自己裸辞两个月了,但是找工作却让自己的心态都要崩溃了,全部无果,不是已查看无回音,就是已查看不符合。 “工作八年,两年一跳,裸辞两个月了,之前月薪60K,最近找工作找的心态崩了!所有招聘工具都用了,全部无果,不是已查看无回音,就是已查看不符合。进头条,滴滴之类的大厂很难吗???!!!投简历投的开始怀疑人生了!希望 可以收到大厂offer” 先来看看网...

我把华为小米年报放一起,发现华为才是真·手机公司,小米确实不靠卖手机赚钱...

郭一璞 发自 凹非寺量子位 报道 | 公众号 QbitAI国产手机界的两大玩家,华为&amp;小米,昨天在同一天前后脚发布了2019年财报。同行冤家,发财报也碰在了同一天。那我们就对比...

大牛都会用的IDEA调试技巧!!!

导读 前天面试了一个985高校的实习生,问了他平时用什么开发工具,他想也没想的说IDEA,于是我抛砖引玉的问了一下IDEA的调试用过吧,你说说怎么设置断点...

97年世界黑客编程大赛冠军作品(大小仅为16KB),惊艳世界的编程巨作

这是世界编程大赛第一名作品(97年Mekka ’97 4K Intro比赛)汇编语言所写。 整个文件只有4095个字节, 大小仅仅为16KB! 不仅实现了3D动画的效果!还有一段震撼人心的背景音乐!!! 内容无法以言语形容,实在太强大! 下面是代码,具体操作看最后! @echo off more +1 %~s0|debug e100 33 f6 bf 0 20 b5 10 f3 a5...

不要再到处使用 === 了

我们知道现在的开发人员都使用 === 来代替 ==,为什么呢?我在网上看到的大多数教程都认为,要预测 JavaScript 强制转换是如何工作这太复杂了,因此建议总是使用===。这些都...

什么是a站、b站、c站、d站、e站、f站、g站、h站、i站、j站、k站、l站、m站、n站?00后的世界我不懂!

A站 AcFun弹幕视频网,简称“A站”,成立于2007年6月,取意于Anime Comic Fun,是中国大陆第一家弹幕视频网站。A站以视频为载体,逐步发展出基于原生内容二次创作的完整生态,拥有高质量互动弹幕,是中国弹幕文化的发源地;拥有大量超粘性的用户群体,产生输出了金坷垃、鬼畜全明星、我的滑板鞋、小苹果等大量网络流行文化,也是中国二次元文化的发源地。 B站 全称“哔哩哔哩(bilibili...

十个摸鱼,哦,不对,是炫酷(可以玩一整天)的网站!!!

文章目录前言正文**1、Kaspersky Cyberthreat real-time map****2、Finding Home****3、Silk – Interactive Generative Art****4、Liquid Particles 3D****5、WINDOWS93****6、Staggering Beauty****7、Ostagram图片生成器网址****8、全历史网址*...

终于,月薪过5万了!

来看几个问题想不想月薪超过5万?想不想进入公司架构组?想不想成为项目组的负责人?想不想成为spring的高手,超越99%的对手?那么本文内容是你必须要掌握的。本文主要详解bean的生命...

毕业5年,我熬夜整理出了这50个优质的电子书网站,吐血推荐!

大家好,我是武哥,最近经常有小伙伴问我要电子书,都什么年代了,还找不到电子书吗?如果要说原因,那就是你还没遇到武哥我(手动滑稽~)!我今天把这么多年我经常看的电子书网站整理一下给大家,基本上能解决大家的需求。不管是在校生还是已经工作了,相信肯定对你有所帮助! 1.鸠摩搜书 首先给大家推荐的网站是:鸠摩搜书 地址:https://www.jiumodiary.com/ 这个网上非常棒,上面有很多优质...

MySQL性能优化(五):为什么查询速度这么慢

前期回顾: MySQL性能优化(一):MySQL架构与核心问题 MySQL性能优化(二):选择优化的数据类型 MySQL性能优化(三):深入理解索引的这点事 MySQL性能优化(四):如何高效正确的使用索引 前面章节我们介绍了如何选择优化的数据类型、如何高效的使用索引,这些对于高性能的MySQL来说是必不可少的。但这些还完全不够,还需要合理的设计查询。如果查询写的很糟糕,即使表结构再合理、索引再...

大厂的 404 页面都长啥样?最后一个笑了...

每天浏览各大网站,难免会碰到404页面啊。你注意过404页面么?猿妹搜罗来了下面这些知名网站的404页面,以供大家欣赏,看看哪个网站更有创意: 正在上传…重新上传取消 腾讯 正在上传…重新上传取消 网易 淘宝 百度 新浪微博 正在上传…重新上传取消 新浪 京东 优酷 腾讯视频 搜...

自从喜欢上了B站这12个UP主,我越来越觉得自己是个废柴了!

不怕告诉你,我自从喜欢上了这12个UP主,哔哩哔哩成为了我手机上最耗电的软件,几乎每天都会看,可是吧,看的越多,我就越觉得自己是个废柴,唉,老天不公啊,不信你看看…… 间接性踌躇满志,持续性混吃等死,都是因为你们……但是,自己的学习力在慢慢变强,这是不容忽视的,推荐给你们! 都说B站是个宝,可是有人不会挖啊,没事,今天咱挖好的送你一箩筐,首先啊,我在B站上最喜欢看这个家伙的视频了,为啥 ,咱撇...

代码注释如此沙雕,会玩还是你们程序员!

某站后端代码被“开源”,同时刷遍全网的,还有代码里的那些神注释。 我们这才知道,原来程序员个个都是段子手;这么多年来,我们也走过了他们的无数套路… 首先,产品经理,是永远永远吐槽不完的!网友的评论也非常扎心,说看这些代码就像在阅读程序员的日记,每一页都写满了对产品经理的恨。 然后,也要发出直击灵魂的质问:你是尊贵的付费大会员吗? 这不禁让人想起之前某音乐app的穷逼Vip,果然,穷逼在哪里都是...

总结了Mybatis,原来知识点也没多少嘛

看完这篇Mybatis,感觉你三天就会用了。

爬虫(101)爬点重口味的

小弟最近在学校无聊的很哪,浏览网页突然看到一张图片,都快流鼻血。。。然后小弟冥思苦想,得干一点有趣的事情python 爬虫库安装https://s.taobao.com/api?_ks...

疫情后北上广深租房价格跌了吗? | Alfred数据室

去年3月份我们发布了《北上广深租房图鉴》(点击阅读),细数了北上广深租房的各种因素对租房价格的影响。一年过去了,在面临新冠疫情的后续影响、城市尚未完全恢复正常运转、学校还没开学等情况下...

面试官给我挖坑:a[i][j] 和 a[j][i] 有什么区别?

点击上方“朱小厮的博客”,选择“设为星标”后台回复&#34;1024&#34;领取公众号专属资料本文以一个简单的程序开头——数组赋值:int LEN = 10000; int[][] ...

在拼多多上班,是一种什么样的体验?我心态崩了呀!

之前有很多读者咨询我:武哥,在拼多多上班是一种什么样的体验?由于一直很忙,没抽出时间来和大家分享。上周末特地花点时间来写了一篇文章,跟大家分享一下拼多多的日常。 1. 倒时差的作息 可能很多小伙伴都听说了,拼多多加班很严重。这怎么说呢?作息上确实和其他公司有点区别,大家知道 996,那么自然也就能理解拼多多的“11 11 6”了。 所以当很多小伙伴早上出门时,他们是这样的: 我们是这样的: 当...

相关热词 c# 局部 截图 页面 c#实现简单的文件管理器 c# where c# 取文件夹路径 c# 对比 当天 c# fir 滤波器 c# 和站 队列 c# txt 去空格 c#移除其他类事件 c# 自动截屏
立即提问