JAVA中的paint()方法和paintComponent(), paintBorder(), paintChildren()怎么用

现在在学习JAVA swing(虽然别人都说过时了),我想做一个小游戏。JAVA中的paint()方法和paintComponent(), paintBorder(), paintChildren()改怎么用?我看很多介绍都说不要直接重写paint( )方法。现在要在JPanel 上绘图,是用某个类继承JPanel再重写paint方法还是怎么?

1个回答

顾名思义,分别是绘制组件、边框、容器里面的子窗体。不要直接重写paint( )的原因是避免和系统本身的绘图冲突。
你要开发什么游戏?不妨先找一个完整的例子代码研究下。

KeleQAQ
KeleQAQ 就像超级玛丽那样的
7 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
请问下java高手,这段swing中paint()代码为什么被执行了两次

我按照书上的介绍,写了一个swing中画图的代码,但是运行时发现他paint()执行了 两次,请问这是为什么呢 另外public void paint(Graphics g)在这段代码中是在哪个地方被调用的,我感觉只 是被重写,没有被调用啊,之前提问有人跟我说这是因为此处的paint算是Jframe的 事件,和方法不一样,但是我还是不理解,代码如下: ``` import java.awt.BorderLayout; import java.awt.Color; import java.awt.EventQueue; import java.awt.Font; import java.awt.FontMetrics; import java.awt.Graphics; import java.awt.Image; import java.awt.Rectangle; import java.awt.Shape; import java.awt.image.ImageObserver; import java.text.AttributedCharacterIterator; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; public class Gtonew extends JFrame { private JPanel contentPane; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { Gtonew frame = new Gtonew(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public Gtonew() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); contentPane.setLayout(new BorderLayout(0, 0)); setContentPane(contentPane); } public void paint(Graphics g){ g.drawRoundRect(300, 150, 50, 50, 100, 100); System.out.println("wobeidiaoyongle");//此处打印没执行了2次 } } ```

repaint方法没有调用paintComponent 为啥呀

import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.Timer; public class Board extends JPanel implements ActionListener { public static final int B_WIDTH = 450; public static final int B_HEIGHT = 450; public static final int DOT_SIZE = 15; public static final int ALL_DOTS = 900; public static final int DELAY = 100; private Timer timer; boolean live = true; Image offScreenImage = null; Snake mySnake = new Snake(); public static void main(String[] args) { new Board().launchGame(); } public void launchGame() { JFrame myJFrame = new JFrame(); myJFrame.setTitle("Snake"); myJFrame.setLocation(400,200); myJFrame.getContentPane().add((new Board())); myJFrame.pack(); myJFrame.addKeyListener(new Board().new KeyMonitor()); myJFrame.setVisible(true); myJFrame.setResizable(false); myJFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); timer = new Timer(DELAY, this); timer.start(); } public Board() { this.setBackground(Color.BLACK); this.setPreferredSize(new Dimension(B_WIDTH, B_HEIGHT)); this.setFocusable(true); this.addKeyListener(new KeyMonitor()); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); this.setDoubleBuffered(true); this.draw(g); } public void draw(Graphics g) { mySnake.draw(g); Food f = new Food(); f.draw(g); } @Override public void actionPerformed(ActionEvent e) { repaint(); } private class KeyMonitor extends KeyAdapter { @Override public void keyPressed(KeyEvent e) { mySnake.keyPressed(e); } } } import java.awt.Color; import java.awt.EventQueue; import java.awt.Graphics; import java.awt.event.KeyEvent; import javax.swing.JFrame; public class Snake { Board b; Direction dir = Direction.R; int x, y, size; private int sX[] = new int[Board.ALL_DOTS]; private int sY[] = new int[Board.ALL_DOTS]; public Snake() { size = 2; sX[0] = 1 * Board.DOT_SIZE; sX[1] = 0 * Board.DOT_SIZE; sY[0] = 0 * Board.DOT_SIZE; sY[1] = 0 * Board.DOT_SIZE; } public Snake(int x, int y, Board b) { this.x = x; this.y = y; this.b = b; } public void draw(Graphics g) { move(); Color c = g.getColor(); g.setColor(Color.GREEN); for(int i=0; i<size; i++) { g.fillOval(sX[i], sY[i], Board.DOT_SIZE, Board.DOT_SIZE); } } public void keyPressed(KeyEvent e) { int key = e.getKeyCode(); switch(key) { case KeyEvent.VK_UP : if(dir == Direction.D) break; dir = Direction.U; break; case KeyEvent.VK_DOWN : if(dir == Direction.U) break; dir = Direction.D; break; case KeyEvent.VK_LEFT : if(dir == Direction.R) break; dir = Direction.L; break; case KeyEvent.VK_RIGHT : if(dir == Direction.L) break; dir = Direction.R; break; } } public void move() { for(int i=size-1; i>0; i--) { sX[i] = sX[(i-1)]; sY[i] = sY[(i-1)]; } switch(dir) { case U : sY[0] -= Board.DOT_SIZE; break; case D : sY[0] += Board.DOT_SIZE; break; case L : sX[0] -= Board.DOT_SIZE; break; case R : sX[0] += Board.DOT_SIZE; break; } } } import java.awt.Color; import java.awt.Graphics; import java.util.Random; public class Food { private int fX; private int fY; private static Random r = new Random(); public Food() { fX = r.nextInt(Board.B_WIDTH / Board.DOT_SIZE) * Board.DOT_SIZE; fY = r.nextInt(Board.B_HEIGHT / Board.DOT_SIZE) * Board.DOT_SIZE; } public void draw(Graphics g) { Color c = g.getColor(); g.setColor(Color.RED); g.fillOval(fX, fY, Board.DOT_SIZE, Board.DOT_SIZE); } } public enum Direction { U, D, L, R } 初学者写的贪吃蛇,用timer计时器,每隔一段时间调用一次repaint(),但运行起来发现,repaint是每隔一段时间被调用了,但paintComponent方法只被调用了一次(或者两次)。。求解啊这bug烦死我了

java,paintComponent画图的时候把组件给覆盖了。该怎么解决?

我的程序的布局是这样的: 一个Jframe的(0,0)位置有一个大小(100,100)的JPanel面板,这个JPanel面板会进行画图。 有一个JMenuBar加在这个Jframe的(0,0)位置,大小为(50,50)。 当JPanel接收到信号调用paintComponent之后,这个JMenuBar就被覆盖了,得把鼠标放上去才会显示出来。 上述的问题该怎么解决呢?

paintComponent(Graphics g)会连续调用两次,想问各位大神什么原理?

在paintComponent()里面加多一个输出语句,可以发现发现protected void paintComponent(Graphics g)会连续调用两次,想问各位大神什么原理? import javax.swing.JFrame; import javax.swing.JPanel; import java.awt.Graphics; public class DrawArcs extends JFrame { public DrawArcs() { setTitle("DrawArcs"); add(new ArcsPanel()); } /** Main method */ public static void main(String[] args) { DrawArcs frame = new DrawArcs(); frame.setLocationRelativeTo(null); // Center the frame frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); frame.setSize(250, 300); } } // The class for drawing arcs on a panel class ArcsPanel extends JPanel { // Draw four blazes of a fan int i=0; protected void paintComponent(Graphics g) { super.paintComponent(g); System.out.println(getWidth()+"+"+getHeight()+"+"+i); i++; int xCenter = getWidth() / 2; int yCenter = getHeight() / 2; int radius = (int)(Math.min(getWidth(), getHeight()) * 0.4); int x = xCenter - radius; int y = yCenter - radius; g.fillArc(x, y, 2 * radius, 2 * radius, 0, 30); g.fillArc(x, y, 2 * radius, 2 * radius, 90, 30); g.fillArc(x, y, 2 * radius, 2 * radius, 180, 30); g.fillArc(x, y, 2 * radius, 2 * radius, 270, 30); } }

repaint方法无效,paintComponent方法未被调用

刚学Java,菜鸟都算不上……在做一个2048的小游戏,然后加上一个超简易AI的时候就出BUG了……求解答 @Override public void keyPressed(KeyEvent e) { // TODO 反射 coreControl.AI(); switch (e.getKeyCode()) { case KeyEvent.VK_UP: coreControl.keyUp(); break; case KeyEvent.VK_DOWN: coreControl.keyDown(); break; case KeyEvent.VK_LEFT: coreControl.keyLeft(); break; case KeyEvent.VK_RIGHT: coreControl.keyRight(); break; case KeyEvent.VK_W: coreControl.keyW();break; case KeyEvent.VK_A: coreControl.AI();break; default: break; } } 然后AI() 是这么写的 public void AI() { while (!Img.isLost) { if(!Img.isLost) { keyRight(); System.out.println("Right"); } if(!Img.isLost) { keyDown(); System.out.println("Down"); } if(!Img.isLost) { System.out.println("Left"); keyLeft(); } if(!Img.isLost) { System.out.println("Up"); keyUp(); } } } 可以看到,两段代码实际上调用的是同一套方法 结果按键操作时可以正常刷新。而当按下A键,调用AI时,窗口就不会刷新了,经过排除,发现是调用repaint时出现问题。repaint没有调用我重写的paintComponent方法。 最神奇的时,当我把AI()放在AI()所在的类的构造器中,由程序自动调用,然后就可以正常跑了…… 这是正常运行图片,分数正常刷新 ![图片说明](https://img-ask.csdn.net/upload/201611/28/1480344496_620052.png) 然后这个是不正常的,分数一直停留在初始的0,经测试,paintComponent方法从未被调用 ![图片说明](https://img-ask.csdn.net/upload/201611/28/1480344536_213789.png)

java多线程中的调用另一个类的paintComponent()方法无效

在多线程中,在该类中创建另一个类含有paintComponent()方法的对象, 在线程结束之前调用第二个paintComponent()方法有效可以执行 (即:应该是第一个paintComponent()方法没有执行完毕之前)。 若第一个paintComponent()方法没有执行完毕之后,再执行另一个对象的 paintComponent()方法,就会无效。 为什么呢?怎么解决?

关于jpanel调用 paintComponent的问题

为什么利用反射生成jpanel对象之后,没有调用paintComponent方法。 这种情况下,将窗口缩小后就会显示预期的图像。 直接利用数组最想不会出现这种问题。。 这是为什么啊??

图形画不出来(java)

package draw; import java.awt.*; import java.awt.geom.*; import javax.swing.*; public class DrawTest { public static void main(String[] args) { EventQueue.invokeLater(()-> { JFrame frame = new DrawFrame(); frame.setTitle("DrawTest"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); }); } } /** *A frame that contains a panel with drawings */ class DrawFrame extends JFrame{ public DrawFrame() { add(new DrawComponent()); pack(); } } /** *A component that displays rectangle and ellipses. */ class DrawComponent extends JComponent { private static final int DEFAULT_WIDTH = 400; private static final int DEFAULT_HEIGHT = 400; public void painComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g; //draw a rectangle double leftX = 100; double topY = 100; double width = 200; double heigh = 150; Rectangle2D rect = new Rectangle2D.Double(leftX,topY,width,heigh); g2.draw(rect); //draw a enclosed ellipse Ellipse2D ellipse = new Ellipse2D.Double(); ellipse.setFrame(rect); g2.draw(ellipse); //draw a diagonal line g2.draw(new Line2D.Double(leftX,topY,width+leftX,heigh+topY)); //draw a circle with same center double centerX = rect.getCenterX(); double centerY = rect.getCenterY(); double radius = 150; Ellipse2D circle = new Ellipse2D.Double(); circle.setFrameFromCenter(centerX, centerY,centerX+radius,centerY+radius); g2.draw(circle); } public Dimension getPreferredSize() { return new Dimension(DEFAULT_WIDTH,DEFAULT_HEIGHT); } } ``` ``` 以上是我的代码,我是从JAVA核心技术那本书上看来的,按理说像这种书一般不会出错。但我对了几遍发现并没有和他不一样的地方,自己也不是很懂,请前辈们指教。为什么图形就是画不出来呢

按钮用void paintComponent(Graphics g)绘制之后,怎么改变颜色?

是这样的,我想弄一个圆角按钮出来,就百度了一下,看到了这篇文章http://blog.csdn.net/lz12366007/article/details/4659056 原作者使用了这种方法绘制按钮void paintComponent(Graphics g){} 问题是这样画出来的按钮,再用常规的JButton.setBackground(Color)改变颜色就没用了。 倒是在void paintComponent(Graphics g){}内部可以设置不同状态下的按钮颜色,但是我觉得有BUG(或者说我不知道怎么达到我想要的效果) public void paintComponent(Graphics g) { if(getModel().isRollover()){ g.setColor(new Color(255,0,0)); }//如果鼠标在按钮上,就把颜色设置为红色 if (getModel().isPressed()) { g.setColor(new Color(0,255,0)); }//如果按钮被按下去了,就把颜色设置为绿色 else { g.setColor(new Color(0,0,255)); }//否则就把颜色设置为蓝色 g.fillRoundRect(0, 0, getSize().width-1,getSize().height-1,6,6); //画出圆角 super.paintComponent(g); } 麻烦的是中间那三个if-else分支有冲突,isPressed和isRollover没冲突,isPressed和else没冲突,isRollover和else没冲突,但是3个放一起就不行,isPressed会被else覆盖(显现不出按下去时的绿色) 但是当删掉else分支时,还有个默认的颜色——白色,这个白色我不知道在哪里设置的(setBackground也没用)当按钮既不是isRollover状态也不是isPressed状态时,就显示白色。 请问我应该怎么办?

在用java swing 时遇到关于设置背景图片的问题

public class LoginPanel extends JPanel { protected ImageIcon icon;//protected的访问权限是同一个包的类即可访问它 public int width,height; public LoginPanel(){ super();//调用父类的构造方法,此处可以不显示调用,系统会自动隐式调用 icon=new ImageIcon("res/login.jpg"); width=icon.getIconWidth(); height=icon.getIconHeight(); setSize(width,height);//调用继承自父类JPanel中 的setSize()方法设置面板的大小因为是继承来的是自己的了所以在类内可以不用实例对象去调用 //this.setSize(width,height); } //想要将这张图片作为背景图片,是不能直接使用add()方法添加该icon对象的;在LoginPanel类中重写paintComponent()方法,并在该方法中调用Graphics类的drawImage()方法绘制该图片 //重写paintComponent()方法 protected void paintComponent(Graphics g){ super.paintComponent(g);//调用父类的paintComponent()方法 Image img = icon.getImage(); g.drawImage(img,100,100,this);//在当前面板中绘制该Image文件 img;this参数表示图片绘制在哪里 System.out.println("执行了paintComponent()方法"); } 为什么在主类中使用new LoginPanel()实现一个实例对象时,函数会执行重写的paintComponent(Graphics g)方法(输出了执行了paintComponent()方法);原则上这个方法LoginPanel中的实例方法,,在实例化类的时候不应该会执行的啊? 请问为什么这里会被执行,或者说实例化 对象时类中的哪些部分会被执行哪些不被执行,求大神帮忙总结一下 附测试用的主函数代码 public class test { public static void main(String[] args) { // TODO Auto-generated method stub JFrame.setDefaultLookAndFeelDecorated(true); JFrame jf = new JFrame(); jf.add(new LoginPanel()); jf.setVisible(true); jf.setSize(800,800); jf.setLocationRelativeTo(null); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }

java 关于添加图片到窗体背景

代码如下 Game.java import javax.swing.JFrame; public class Game{ public static void main(String[] args){ JFrame window = new JFrame(); window.setSize(800,600); window.setLocation(270,100); window.setTitle("我的图片"); window.show(); } } MyJFrame.java import java.awt.Color; import java.awt.Graphics; import java.awt.Image; import java.io.File; import javax.imageio.ImageIO; import javax.swing.JFrame; public class MyJFrame extends Game{ Image mapImage; Image lxyImage; public MyJFrame(){ try{ File file = new File("D:/素材/地图/0.png"); mapImage = ImageIO.read(file); lxyImage = ImageIO.read(new File("D:/素材/图片/0.png")); }catch(Exception e){ e.printStackTrace(); } } public void paint(Graphics g){ g.drawImage(mapImage, 0, 0, null); g.drawImage(lxyImage, 400, 300, null); } } 求解答,新人,尽量详细点,不胜感激!

java的repaint()没有重绘,怎么回事呀。

package chapter17; import java.awt.*; import javax.swing.*; import java.awt.event.*; public class showRadioButton extends JFrame{ /** * @param args */ showRadioButton(){ creatButtonPanel bp =new creatButtonPanel(); messagePanel mp = new messagePanel(); setLayout(new BorderLayout()); add(bp,BorderLayout.SOUTH); add(mp,BorderLayout.CENTER); messagePanel messagepanel = new messagePanel(); setSize(800,600); setLocationRelativeTo(null); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public static void main(String[] args) { // TODO 自动生成的方法存根 showRadioButton srb = new showRadioButton(); } //生成String,并操作String class messagePanel extends JPanel{ private String s = "Welcome to Java"; private boolean bl = true; private int x ; private int y ; // 第一次绘制图形 protected void paintComponent(Graphics g){ super.paintComponent(g); // 设置string的位置 if(bl == true){ FontMetrics fm = g.getFontMetrics(); int sw = fm.stringWidth(s)/2; int sh = fm.getAscent()/2; x = getWidth()/2 - sw; y = getHeight()/2 - sh; //开始绘制sting并且设置布尔值 g.drawString(s,x,y); bl = false; }else{ g.drawString(s,x,y); } } //重绘方法 protected void left(){ x = x - 50; repaint(); } public void right() { x = x + 50; repaint(); } } //绘制button按钮并出册事件 class creatButtonPanel extends JPanel{ public creatButtonPanel(){ JButton jbtl = new JButton("left"); JButton jbtr = new JButton("rigtht"); jbtl.setMnemonic('L'); jbtr.setMnemonic('R'); //showRadioButton srb = new showRadioButton(); add(jbtl); add(jbtr); jbtl.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ messagePanel mp = new messagePanel(); mp.left(); // 重要 外部类调用内部类 } }); jbtl.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ new messagePanel().right(); } }); //return buttonPanel; } } } ``` ```

多线程 java.lang.NullPointerException

``` Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at javax.swing.plaf.basic.BasicListUI.paintImpl(BasicListUI.java:266) at javax.swing.plaf.basic.BasicListUI.paint(BasicListUI.java:240) at javax.swing.plaf.ComponentUI.update(ComponentUI.java:161) at javax.swing.JComponent.paintComponent(JComponent.java:780) at javax.swing.JComponent.paint(JComponent.java:1056) at javax.swing.JComponent.paintToOffscreen(JComponent.java:5219) at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1572) at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1495) at javax.swing.RepaintManager.paint(RepaintManager.java:1265) at javax.swing.JComponent._paintImmediately(JComponent.java:5167) at javax.swing.JComponent.paintImmediately(JComponent.java:4978) at javax.swing.RepaintManager$4.run(RepaintManager.java:824) at javax.swing.RepaintManager$4.run(RepaintManager.java:807) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:807) at javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:782) at javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:731) at javax.swing.RepaintManager.access$1300(RepaintManager.java:64) at javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1720) at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75) at java.awt.EventQueue.dispatchEvent(EventQueue.java:726) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) ``` ## 我写了个socket通信的小程序,,每次启动一个客户端就创建一个线程专门用来读取Server回复的信息,主线程用来往Server发信息。 ## 有时 ,当我启动到第多个客户端时就会报出该异常,但是程序还是正常运行的。。只是在该客户端控制台输出了这些异常信息,有时一个一个关闭客户端时也会报该异常, 而这些不是我的代码里的东西,,求指导。这是异常是关于什么的。??

java面板的背景图片为什么显示不出来?下面是程序代码?

import java.awt.Graphics; import java.awt.Image; import java.awt.Toolkit; import javax.swing.JFrame; import javax.swing.JPanel; public class Exam9_4 extends JPanel{ private Image image; Exam9_4(){ super(); image=Toolkit.getDefaultToolkit().getImage("AB.jpg"); } public void paintComponent(Graphics g){//绘制此容器中的每个组件 super.paintComponent(g); g.drawImage(image, 0, 0, this.getWidth(),this.getHeight(),this); }//图片会自动缩放 public static void main(String[] args) { JFrame frame=new JFrame("添加了背景的面板"); Exam9_4 panel = new Exam9_4(); frame.add(panel);//将面板添加到JFrame上 frame.setVisible(true); frame.setBounds(300, 300, 400, 500); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }

java swing 自定义组件

我想设计一个这个组件,一个panel,里面3个label。 写了段代码,可是执行不出来。(本人新手),求各位指点一二。 [code="java"] /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package mytext; /**实现新的组件 * * @author Administrator */ public class NewComp { private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JPanel jPanel1; public NewComp(){ jPanel1 = new javax.swing.JPanel(); jLabel2 = new javax.swing.JLabel(); jLabel3 = new javax.swing.JLabel(); jLabel1 = new javax.swing.JLabel(); jPanel1.setName("jPanel1"); // NOI18N jPanel1.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent evt) { } }); org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(mytext.MyTextApp.class).getContext().getResourceMap(MyTextView.class); jLabel2.setText(resourceMap.getString("jLabel2.text")); // NOI18N jLabel2.setName("jLabel2"); // NOI18N jLabel3.setText(resourceMap.getString("jLabel3.text")); // NOI18N jLabel3.setName("jLabel3"); // NOI18N jLabel1.setText(resourceMap.getString("jLabel1.text")); // NOI18N jLabel1.setName("jLabel1"); // NOI18N javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel2, javax.swing.GroupLayout.DEFAULT_SIZE, 106, Short.MAX_VALUE) .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, 106, Short.MAX_VALUE) .addComponent(jLabel1, javax.swing.GroupLayout.DEFAULT_SIZE, 106, Short.MAX_VALUE)) .addContainerGap()) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 15, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel3)) ); } } [/code]

助下面的异常信息是怎么产生的?

下面的异常信息是怎么产生的.大概只知道这些信息与JTable的绘制有关,但具体不知道为什么会出现.google了一下,相关的信息及少.好像是一个bug.不知道怎么样解决这个问题.有见过这样异常信息的朋友吗?请指点下. [code="java"] at javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:2076) at javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:1977) at javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:1773) at javax.swing.plaf.ComponentUI.update(ComponentUI.java:143) at javax.swing.JComponent.paintComponent(JComponent.java:763) at javax.swing.JComponent.paint(JComponent.java:1027) at javax.swing.JComponent.paintToOffscreen(JComponent.java:5122) at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(RepaintManager.java:1472) at javax.swing.RepaintManager$PaintManager.paint(RepaintManager.java:1403) at javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:293) [/code]

Java Socket实现客户端服务画面同步,报错

java.net.ConnectException: Connection refused: connect at java.net.DualStackPlainSocketImpl.connect0(Native Method) at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:79) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at java.net.Socket.connect(Socket.java:538) at java.net.Socket.<init>(Socket.java:434) at java.net.Socket.<init>(Socket.java:211) at Chat.Client.start2(Client.java:59) at Chat.Client.main(Client.java:83) 客户端代码 package Chat; import java.awt.*; import java.awt.event.*; import java.io.*; import java.net.Socket; import javax.swing.*; public class Client { JFrame frame; MyPanel mp; JButton send; int width; int height; public Client() throws AWTException{ frame =new JFrame("Client"); frame.setSize(400, 400); JPanel pane = new JPanel(); frame.add(pane,BorderLayout.SOUTH); mp=new MyPanel(); send = new JButton("开始"); pane.add(send); send.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub width = 40; height = 40; mp.repaint(); } }); frame.add(mp,BorderLayout.CENTER); Thread t=new Thread(mp); t.start(); frame.setVisible(true); frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e){ System.exit(0); } }); } public void start2(){ Socket s = null; while(true){ try{ s = new Socket("127.0.0.1",5000); send.setEnabled(true); PrintWriter out = new PrintWriter(new OutputStreamWriter(s.getOutputStream())); out.println(mp.x); out.println(mp.y); out.println(mp.width); out.println(mp.height); mp.repaint(); out.close(); s.close(); // Thread.sleep(10); }catch(Exception e){ e.printStackTrace(); } } } public static void main (String args[]) { try { Client c = new Client(); c.start2(); } catch (AWTException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } class MyPanel extends Panel implements Runnable{ int x=0; int y=0; int width = 40; int height = 40; boolean yAdd = true; boolean xAdd = true; public void paint(Graphics g){ g.setColor(Color.pink); g.fillOval(x, y,width ,height); } public void run() { while(true) { if(yAdd) y+=2; else y-=2; if(y >= this.getHeight()- height || y <= 0) yAdd=!yAdd; if(xAdd) x+=3; else x-=3; if(x >= this.getWidth()- width || x <= 0) xAdd=!xAdd; repaint(); try { Thread.sleep(10); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } repaint(); } } } 服务器端代码 package Chat; import java.awt.*; import java.net.*; import java.io.*; import java.awt.event.*; import javax.swing.*; public class Server extends JFrame{ JFrame frame; JPanel pane; int x=0; int y=0; int height = 40; int width = 40; public Server(){ // super("Server"); frame = new JFrame("Server"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // pane = new JPanel(); // frame.setContentPane(pane); frame.setVisible(true); frame.setSize(400,400); // start(); } private void start(){ ServerSocket ss = null; try{ ss = new ServerSocket(5000); Socket s = ss.accept(); BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream())); String s_x = in.readLine(); String s_y = in.readLine(); String s_width = in.readLine(); String s_height = in.readLine(); x = Integer.parseInt(s_x); y = Integer.parseInt(s_y); width = Integer.parseInt(s_width); height = Integer.parseInt(s_height); Thread.sleep(10); repaint(); in.close(); s.close(); ss.close(); }catch(Exception e){ e.printStackTrace(); } } public void paint(Graphics g){ g.setColor(Color.pink); g.fillOval(x, y, height,width); } public static void main(String[] args){ Server s = new Server(); s.start(); } }

Java贪吃蛇图形绘制问题

* # 这里是控制蛇移动的代码 ``public void move_on() { paint p1=new paint(); Fruit fruit=new Fruit(); Snake snake=new Snake(); Move read=new Move(); /* * 对第一个元素即蛇头进行判断,根据所指方向对x,y坐标进行操作 * 完毕后重绘界面,达到动态移动效果 */ new Thread(new Runnable() { @Override public void run() { // TODO 自动生成的方法存根 while(Snake.life){ switch (Model.snake.get(0).direction) { case 8: Model.snake.get(0).point.y+=General.y_height; p1.repaint(); break; case 2: Model.snake.get(0).point.y-=General.y_height; break; case 4: Model.snake.get(0).point.x-=General.x_width; break; case 6: Model.snake.get(0).point.x+=General.x_width; break; default: break; } System.err.println(Model.snake.get(0).point.x+" "+Model.snake.get(0).point.y); //调用绘制方法进行重绘 SwingUtilities.invokeLater(new Runnable() { @Override public void run() { // TODO 自动生成的方法存根 p1.repaint(); //对蛇体进行移动操作,即每一个节点都到了前一个节点的位置上 for(int i=1;i<Model.snake.size();i++) { Model.snake.get(i).direction=Model.snake.get(i-1).direction; Model.snake.get(i).point=Model.snake.get(i-1).point; } /* 进行完移动操作之后判断一下是否吃到果子 * 如果被吃掉,则把果子的位置和赋值给read,将原头结点的方向赋值给read * 最后将read插入snake头结点 */ if(fruit.isEaten()) { read.point=fruit.location; read.direction=Model.snake.get(0).direction; Model.snake.offerFirst(read); p1.repaint(); } }//end swing_run }); /* * 判断是否撞墙或吃到身体(结束游戏) */ snake.isAlive(); try { Thread.sleep(1500); } catch (InterruptedException e) { // TODO: handle exception } move_on(); } } }).start(); }//end move_on` # 这里是绘制蛇和果子的方法 ## ``public void paintComponent(Graphics g) { super.paintComponent(g); System.err.println("调用绘制方法"); snake_paint.drawSnake(g); /* * 当蛇长为1(即刚初始化游戏)的时候 * 或判断果子被吃掉后 * 才能绘制果子 */ if(Snake.Long==1||fruit_paint.isEaten()) { fruit_paint.drawFruit(g); } # public void drawSnake(Graphics g) { super.paintComponent(g); Model model=new Model(); g.setColor(Color.BLACK); System.err.println("调用绘制蛇体方法"); for(Move r:model.snake) g.fillRect(r.point.x,r.point.y, General.x_width, General.y_height); }` public void drawFruit(Graphics g) { g.setColor(Color.RED); g.fillRect(location.x, location.y, General.x_width,General.y_height); } 小弟现在面临的问题是:1.绘制方法调用了,但是面板毫无动静,依然是第一次值的位置。看了一下断点和输出,值是传给了绘制方法的。 是不是界面刷新问题?在move_on方法里面新建了一个线程,不知道用对没。 2.有时候值会大于定下的边界(y=700),而继续增加一点,比如到了750才停下,是不是线程冲突的问题? 3.,除了第一次调用绘制方法的时间正确以外,其他的时间都不对,不是每一个switch判定之后马上就调用。而是在判定游戏结束(蛇头位置大于容器边界)之后一直调用。

java的setlayout(null),选项卡组件不显示

我这里有一个继承jpanel的类 其中setlayout(null),我添加了一个跑马灯的组件和一个选项卡组件,并且我都用了setbounds,可是我的跑马灯能够正常显示而选项卡不能显示如果把setlayout删除则跑马灯和选项卡都能显示出来,可是这时候的位置是固定的无法进行修改我把代码拷贝一下请大神们修改一下,谢谢 package gui.logon; import gui.frame.SystemFrame; import java.awt.*; import javax.swing.*; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Container; import java.awt.FlowLayout; import java.awt.Graphics; import java.awt.GridBagConstraints; import java.awt.GridLayout; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.geom.GeneralPath; import java.text.SimpleDateFormat; import java.util.BitSet; import java.util.Date; import javax.swing.BoxLayout; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JPasswordField; import javax.swing.JTabbedPane; import javax.swing.JTextField; import action.ActionBean; import action.ActionMessage; import actions.EnterButtonAction; import beans.Student; // 登录Panel类 public class LogonPanel extends JPanel { private static final long serialVersionUID = -4614980225785032078L; private JTabbedPane tabs; //选项卡 private Marque marque; private Container getContentPane; public LogonPanel() { this.init(); this.addComponent(); } //初始化 public void init() { this.setOpaque(false); } //添加跑马灯选项卡等方法 public void addComponent(){ this.add(this.test());//加载跑马灯 for(JTabbedPane tabs:this.tabs()){ this.add(tabs);//加载选项卡 } } //跑马灯方法 public Marque test(){ Marque test = new Marque(); test.setBounds(0,60,450,20); return test; } //选项卡列表 public JTabbedPane[] tabs(){ JPanel LogonUsePanel = new JPanel(); JPanel RegisterAccountPanel = new JPanel(); JPanel Accountbinding = new JPanel(); JPanel AccountRecharge = new JPanel(); JPanel Accountmodification= new JPanel(); JTabbedPane tabs = new JTabbedPane(); tabs.addTab("登录使用",LogonUsePanel); tabs.addTab("注册账户",RegisterAccountPanel); tabs.addTab("账户绑定",Accountbinding); tabs.addTab("账户充值",AccountRecharge); tabs.addTab("账户改密",Accountmodification); this.add(tabs); Container container = new Container(); this.setBounds(0,81,450,20); return new JTabbedPane[] {tabs}; } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); g.drawImage(new ImageIcon("src/images/logon.png").getImage(), 0, 0, null); } }

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

springboot+jwt实现token登陆权限认证

一 前言 此篇文章的内容也是学习不久,终于到周末有时间码一篇文章分享知识追寻者的粉丝们,学完本篇文章,读者将对token类的登陆认证流程有个全面的了解,可以动态搭建自己的登陆认证过程;对小项目而已是个轻量级的认证机制,符合开发需求;更多精彩原创内容关注公主号知识追寻者,读者的肯定,就是对作者的创作的最大支持; 二 jwt实现登陆认证流程 用户使用账号和面发出post请求 服务器接受到请求后使用私...

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

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

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

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

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

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

程序员写出这样的代码,能不挨骂吗?

当你换槽填坑时,面对一个新的环境。能够快速熟练,上手实现业务需求是关键。但是,哪些因素会影响你快速上手呢?是原有代码写的不够好?还是注释写的不够好?昨夜...

外包程序员的幸福生活

今天给你们讲述一个外包程序员的幸福生活。男主是Z哥,不是在外包公司上班的那种,是一名自由职业者,接外包项目自己干。接下来讲的都是真人真事。 先给大家介绍一下男主,Z哥,老程序员,是我十多年前的老同事,技术大牛,当过CTO,也创过业。因为我俩都爱好喝酒、踢球,再加上住的距离不算远,所以一直也断断续续的联系着,我对Z哥的状况也有大概了解。 Z哥几年前创业失败,后来他开始干起了外包,利用自己的技术能...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

早上躺尸,晚上干活:硅谷科技公司这么流行迟到?

硅谷科技公司上班时间OPEN早已不是什么新鲜事,早九晚五是常态,但有很多企业由于不打卡,员工们10点、11点才“姗姗来迟”的情况也屡见不鲜。 这种灵活的考勤制度为人羡慕,甚至近年来,国内某些互联网企业也纷纷效仿。不过,硅谷普遍弹性的上班制度是怎么由来的呢?这种“流行性迟到”真的有那么轻松、悠哉吗? 《动态规划专题班》 课程试听内容: 动态规划的解题要领 动态规划三大类 求最值/计数/可行性 常...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

Python爬虫,高清美图我全都要(彼岸桌面壁纸)

爬取彼岸桌面网站较为简单,用到了requests、lxml、Beautiful Soup4

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

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

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

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

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

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

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

Java岗开发3年,公司临时抽查算法,离职后这几题我记一辈子

前几天我们公司做了一件蠢事,非常非常愚蠢的事情。我原以为从学校出来之后,除了找工作有测试外,不会有任何与考试有关的事儿。 但是,天有不测风云,公司技术总监、人事总监两位大佬突然降临到我们事业线,叫上我老大,给我们组织了一场别开生面的“考试”。 那是一个风和日丽的下午,我翘着二郎腿,左手端着一杯卡布奇诺,右手抓着我的罗技鼠标,滚动着轮轴,穿梭在头条热点之间。 “淡黄的长裙~蓬松的头发...

大胆预测下未来5年的Web开发

在2019年的ReactiveConf 上,《Elm in Action》的作者Richard Feldman对未来5年Web开发的发展做了预测,很有意思,分享给大家。如果你有机会从头...

立即提问
相关内容推荐