调用repaint后有打印,但是却没有重画

问题描述

menu和panel是两个JPanel,添加在Main_menu里。importjava.awt.Color;importjava.awt.Font;importjava.awt.FontMetrics;importjava.awt.Graphics;importjava.awt.Graphics2D;importjava.awt.Image;importjava.awt.Rectangle;importjava.awt.RenderingHints;importjava.awt.Shape;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.geom.Line2D;importjava.awt.image.ImageObserver;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.text.AttributedCharacterIterator;importjava.util.ArrayList;importjava.util.List;importjavax.swing.JComboBox;importjavax.swing.JFrame;importjavax.swing.JLabel;importjavax.swing.JMenu;importjavax.swing.JPanel;importjavax.swing.JTextField;importDBBean.DBBean;publicclassMain_menuextendsJFrame{Menumenu=newMenu();Panelpanel=newPanel();publicMain_menu(){System.out.println("Main_menu");this.add(menu);this.add(panel);//this.setVisible(true);this.setSize(1000,739);this.setLocationRelativeTo(null);setResizable(false);setTitle("李涵大天才V1.0");this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);getContentPane().setBackground(Color.DARK_GRAY);}publicvoidrep(){this.setVisible(false);this.remove(panel);this.add(panel);}}

importjava.awt.Container;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjavax.swing.JFrame;importDBBean.DBBean;/*_ooOoo_o8888888o88"."88(|-_-|)O=/O____/`---'____.'\||//`./\|||:|||///_|||||-:-|||||-||\-///|||_|''---/''||.-__`-`___/-./___`..'/--.--`..__.""'<`.____<|>_/___.'>'"".||:`-`.;`_/`;.`/-`:||\`-.___/___/.-`//======`-.____`-.________/___.-`____.-'======`=---='^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^佛祖保佑永无BUG*/publicclassMain{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstubMain_menumain_menu=newMain_menu();main_menu.setVisible(true);System.out.println("一次");}}

importjava.awt.Color;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.swing.JComboBox;importjavax.swing.JLabel;importjavax.swing.JPanel;importjavax.swing.JTextField;importjavax.swing.event.AncestorEvent;importjavax.swing.event.AncestorListener;publicclassMenuextendsJPanelimplementsActionListener{privatestaticfinallongserialVersionUID=1L;privatedoublea;privatedoubleb;privateJTextFieldt1;privateJTextFieldt2;JComboBoxjcombobox;privateJLabeljlabel1;privateJLabeljlabel2;privateJLabeljlabel3;Panelpanel=newPanel();publicMenu(){this.setLayout(null);jcombobox=newJComboBox<>();jcombobox.addItem("银行");jcombobox.addItem("零售");jcombobox.setBounds(100,50,100,20);this.add(jcombobox);jlabel1=newJLabel("a=");jlabel1.setBounds(200,50,80,25);jlabel1.setBackground(Color.white);this.add(jlabel1);t1=newJTextField("10");t1.setBounds(300,50,80,20);t1.setVisible(true);t1.addActionListener(this);this.add(t1);this.setSize(1000,80);this.setBackground(Color.darkGray);}@OverridepublicvoidactionPerformed(ActionEvente){//TODOAuto-generatedmethodstubif(e.getSource()==t1){panel.setPoint_num(Integer.parseInt(t1.getText()));panel.rep();Main_menum=newMain_menu();m.rep();System.out.println("回车");}}}

importjava.awt.BasicStroke;importjava.awt.Color;importjava.awt.Graphics;importjava.awt.Graphics2D;importjava.awt.event.KeyEvent;importjava.awt.event.KeyListener;importjava.sql.Connection;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.util.ArrayList;importjava.util.Collection;importjava.util.List;importjava.util.Map;importjava.util.TreeMap;importjavax.swing.JPanel;importDBBean.DBBean;publicclassPanelextendsJPanelimplementsKeyListener{List<Integer>l1=newArrayList<>();List<Integer>l2=newArrayList<>();staticintpoint_num=11;staticdoublemax;staticdoublemin;publicPanel(){addKeyListener(this);Mapmap=newTreeMap();this.setSize(1000,620);setBackground(newColor(0x22,0x22,0x22));//键值对拿出数据,存放两个list中DBBeand=newDBBean();Connectioncon=d.con();System.out.println(con);Stringsql="select*fromcountorderbybdesc";try{PreparedStatementps=con.prepareStatement(sql);ResultSetrs=ps.executeQuery();System.out.println(rs==null);while(rs.next()){//System.out.println("ssss"+rs.getInt(1));l1.add(rs.getInt(1));l2.add(rs.getInt(2));}}catch(SQLExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}for(inti=0;i<l1.size();i++){System.out.println(l1.get(i));System.out.println(l2.get(i));System.out.println();}}publicintgetPoint_num(){returnpoint_num;}publicvoidsetPoint_num(intpoint_num){this.point_num=point_num;}@SuppressWarnings("null")publicvoidpaintComponent(Graphicsg){System.out.println("paint!!!!!!!!!!!!!!!");System.out.println("point_mun="+point_num);super.paintComponent(g);floatlineWidth=3.0f;((Graphics2D)g).setStroke(newBasicStroke(lineWidth));g.setColor(newColor(0x80,0x00,0x00));g.drawLine(0,390,1000,390);g.drawLine(0,81,1000,81);g.drawLine(0,708,1000,708);lineWidth=1.0f;((Graphics2D)g).setStroke(newBasicStroke(lineWidth));g.setColor(newColor(0xff,0x32,0x32));max=0;for(inti=0;i<point_num;i++){if(l1.get(i)>max)max=l1.get(i);}min=max;for(inti=0;i<point_num;i++){if(l1.get(i)<min)min=l1.get(i);}System.out.println("max"+max);System.out.println("min"+min);doublex=(max-min)/624;doubley=min/x;System.out.println(x+"xxxxxxxxxx");for(inti=0;i<point_num-1;i++){g.drawLine(i*100,((int)(l1.get(i)/x-y)+81),i*100+100,((int)(l1.get(i+1)/x-y)+81));System.out.println(i*100+""+l1.get(i)+""+i*100+100+""+l1.get(i+1));}}publicvoidrep(){revalidate();repaint();System.out.println("rep");}@OverridepublicvoidkeyTyped(KeyEvente){//TODOAuto-generatedmethodstub}@OverridepublicvoidkeyPressed(KeyEvente){//TODOAuto-generatedmethodstubintkeyCode=e.getKeyCode();if(keyCode==KeyEvent.VK_LEFT)System.out.println("left");if(keyCode==KeyEvent.VK_UP)System.out.println("left");if(keyCode==KeyEvent.VK_DOWN)System.out.println("left");if(keyCode==KeyEvent.VK_RIGHT)System.out.println("left");}@OverridepublicvoidkeyReleased(KeyEvente){//TODOAuto-generatedmethodstub}}

packageDBBean;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava.sql.SQLException;publicclassDBBean{Stringdriver="com.mysql.jdbc.Driver";StringdbName="SetElement_Count";Stringpasswrod="123456";StringuserName="root";Stringurl="jdbc:mysql://localhost:3306/"+dbName;publicConnectioncon(){Connectionconn=null;try{Class.forName(driver);conn=DriverManager.getConnection(url,userName,passwrod);}catch(Exceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}returnconn;}}

问题1:运行后在Menu中的t1里输入数字回车后调用repaint,没有调用panel中的paintComponent,但是下拉菜单发生改变时,会调用paintComponent,并有打印,但是没有重画。问题2:给panel添加键盘监听事件,但是鼠标点击获取不到焦点,该怎么监听?

解决方案

解决方案二:
没有人在看么..........崩溃了.................
解决方案三:
sql的表结构和测试数据呢。

时间: 2024-10-13 19:52:56

调用repaint后有打印,但是却没有重画的相关文章

java树的节点事件里调用repaint方法 不能实现重绘

问题描述 java树的节点事件里调用repaint方法 不能实现重绘 java树的节点事件里调用repaint方法 不能实现重绘 怎么解决......................... 解决方案 http://zhidao.baidu.com/link?url=_s3y58ND8LIk-TtWOqBE2sXSaX5vKISRuxgRbdlCvZ2TPcjjujnp85-84Xto3Pa3rh7GEZ8yJ5ctIOYQxF7wTq

java中panel实现线程接口以后,要调用repaint函数时,不进run函数

问题描述 java中panel实现线程接口以后,要调用repaint函数时,不进run函数 具体情况是 mypanel类实现了线程接口,在run函数中定义了sleep(100)后调用repaint函数,做一个小坦克游戏,在repaint之前要判断是否击中坦克,击中后要显示三张图片来体现爆炸效果,可是经过调试发现,每次第一次击中的时候,都是直接好多次repaint,没有休眠,后来发现根本就没有进mypanel的run()方法,好像有另一个其他线程再调用paint.这是怎么回事?感谢大家了 pack

js调用iframe实现打印页面内容的方法

 这篇文章主要介绍了js调用iframe实现打印页面内容的方法,需要的朋友可以参考下 1.程序说明   1) 此程序可以实现选择页面中的区域进行打印,以iframe方式进行打印: 2) 与原生态的print() 区别在于,取消打印页面后可以完整保留当前访问页面的内容.   2.代码部分   1) JS 函数:  代码如下: function do_print(id_str)//id-str 打印区域的id { var el = document.getElementById(id_str); v

js-循环调用window.print打印,想只在第一次显示弹窗,后面的弹窗均不显示

问题描述 循环调用window.print打印,想只在第一次显示弹窗,后面的弹窗均不显示 5C 使用ajax查询数据,赋值给隐藏的页面,然后调用print()进行打印不能用插件 var i = 0; function printmore() { var orderRow = $('#dg').datagrid(""getSelections""); var len = orderRow.length; if(i == len) { return; } $.ajax(

vc++编程问题-关于VC调用API如何打印字符串

问题描述 关于VC调用API如何打印字符串 最近在写一个记事本的程序,我想实现它的打印功能,跟windows下的记事本一样,不知道是如何实现的呢? 解决方案 http://wenku.baidu.com/link?url=xu3hMtICSp0Wb8KxhINuLYwLrE_8yBY67d3hB3webdH3-57zXkkIGtXW_xtAnUPh_ekRci5vwc3oDgfDk-Q-84HDdYudjq4ZYMJaAO4rMEW 关键点在于像往屏幕输出那样调用TextOut 如果超出一张纸,

在Java程序中调用C函数--打印&quot;HelloWorld&quot;

源地址:http://java.sun.com/docs/books/jni/html/start.html#26346 本文是将书中的第二章单独抽出来,红色部分为译者注. 1.概述 这个打印的过程是用JDK或Java 2 SDK写一个简单的Java程序,程序会调用一个C函数打印"HelloWorld".这个过程将包括以下步骤: 创建一个Java类(HelloWorld.java),以及定义一个native方法. 使用javac去编译这个HelloWorld源文件,生成HelloWor

为何我使用java画图调用repaint后未重新绘图,而是在原基础上绘图

问题描述 如下为我的程序:packageview;importjava.awt.BasicStroke;importjava.awt.Color;importjava.awt.Graphics;importjava.awt.Graphics2D;importjava.awt.Point;importjava.awt.event.MouseEvent;importjava.awt.event.MouseListener;importjava.util.List;importjavax.swing.

存储过程 print-sql 存储过程的print 打印结果去了哪儿?java调用存储过程会打印吗?

问题描述 sql 存储过程的print 打印结果去了哪儿?java调用存储过程会打印吗? sql 存储过程的print 打印结果去了哪儿?java调用存储过程会打印吗? 解决方案 在sql的控制台上啊.会打印.

新手求助 ActionListener中多次调用repaint()只运行一个?

问题描述 在做一个类似俄罗斯方块的游戏,同颜色的方块消去,本来想用标记消去部分,显示另外颜色来突出消去的部分后再消去方块,但发现调用repaint()无效下面是代码这个actionListener属于一个timerpublicvoidactionPerformed(ActionEvente){if(!currentBar.canDown(matrix)){while(true){intnewScore=matrix.checkMatrix();//方块颜色数据存储与matrix,checkMat