JFrame的JButton点击事件无法正确显示另外的界面 5C

网上找了个程序,自己改,是一个小游戏,本来只有一个游戏界面,我想添加一个登录页面,结果就刚加了个界面就卡住了。从Fishlord类中使用main()函数可以正确显示,但是通过另外一个JFrame通过JButton点击事件调用Fishlord时无法显示,而且连右上角的关闭按钮都不能点击! 代码在下面:
这个界面有按钮,点击按钮跳转到下面那个iframe,在JButton点击事件里使用new的方法

package fishhh;
import java.awt.Color;
import java.awt.Container;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class Login {

private static JFrame frame;
public static void main(String[] args) throws Exception {
    // 窗体大小
    frame = new JFrame();
    frame.setSize(800, 480);
    frame.setLayout(null);//设置布局管理器为空
    JButton button = new JButton("登     录");
    button.setBounds(new Rectangle(280, 210, 220, 30));//参数分别是坐标x,y,宽,高
    frame.add(button);
    JTextField tfUser = new JTextField();
    tfUser.setBounds(new Rectangle(280, 140, 220, 25));
    frame.add(tfUser);
    JPasswordField tfPwd = new JPasswordField();
    tfPwd.setBounds(new Rectangle(280, 170, 220, 25));
    frame.add(tfPwd);
    // 显示窗体
    frame.setVisible(true);
    ImageIcon img = new ImageIcon("bg.jpg");// 这是背景图片
    JLabel imgLabel = new JLabel(img);// 将背景图放在标签里。
    frame.getLayeredPane().add(imgLabel, new Integer(Integer.MIN_VALUE));
    imgLabel.setBounds(0, 0, frame.getWidth(), frame.getHeight());
    Container cp = frame.getContentPane();
    cp.setLayout(null);
    ((JPanel) cp).setOpaque(false); // 这样就能显示出背景图片出来了
    button.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
          //创建新的窗口
            frame.setVisible(false);
                try {
                    new Fishlord();
                } catch (Exception e1) {
                    e1.printStackTrace();
                }
        }
    });
}

public void close(){
    frame.dispose();
}

}

跳转到这个界面
package fishhh;

import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.util.Random;

import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Fishlord {

public static void main(String[] args) throws Exception {
    new Fishlord();
}

public Fishlord() throws Exception{
    JFrame frame = new JFrame("捕鱼达人");
    Pool pool = new Pool();
    frame.add(pool);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 关闭窗口时关闭程序
    frame.setSize(800, 480);
    frame.setLocationRelativeTo(null);// 设置窗口居中,必须放在setSize之后
    frame.setResizable(false);// 不允许用户改变窗口大小
    frame.setVisible(true);
    pool.action();
}

}

class Pool extends JPanel {
BufferedImage background = null;
Fish fish = null;;
Fish[] fishs = new Fish[9];
Net net = null;
int score = 0;
int fontsize = 20;
Font font = new Font("楷体", Font.BOLD, fontsize);

Pool() throws IOException {
    // background = ImageIO.read(new File("bg.jpg")); //读取工程目录图片
    background = ImageIO.read(getClass().getResourceAsStream("/images/bg.jpg"));
    /**
     * 1)getClass().getResourceAsStream()方法读取的是src/images包下的图片 2)background
     * = ImageIO.read(new File("images/bg.jpg"));
     * 这个方法读取的是工程CatchFish/images文件夹下的图片
     */

    for (int i = 0; i < 9; i++) {
        fish = new Fish("fish0" + (i + 1));
        fishs[i] = fish;
        fish.start();
    }
}

public void paint(Graphics g) { // paint什么时候调用?
    // System.out.println("paint");
    g.drawImage(background, 0, 0, null);
    for (int i = 0; i < fishs.length; i++) {
        Fish tempfish = fishs[i];
        g.drawImage(tempfish.fishimage, tempfish.x, tempfish.y, null);
    }
    if (net.show) {
        g.drawImage(net.netimage, net.x - net.width / 2, net.y - net.height
                / 2, null);
    }
    g.setFont(font);
    g.setColor(Color.white);
    g.drawString("SCORE:", 10, 20);
    g.setColor(Color.red);
    g.drawString("      " + score, 10, 20);
}

public void action() throws Exception {

    net = new Net();

    MouseAdapter m = new MouseAdapter() {
        public void mouseEntered(MouseEvent e) {
            net.show = true;
        }

        public void mouseExited(MouseEvent e) {
            net.show = false;
        }

        // 在鼠标移动时候执行
        public void mouseMoved(MouseEvent e) {
            // MouseEvent 鼠标事件:鼠标事件发生时间地点人物
            long time = e.getWhen();
            int x = e.getX();
            int y = e.getY();

            // Object o=e.getSource();//发生事件的物体pool
            net.x = x;
            net.y = y;
        }

        public void mousePressed(MouseEvent e) {
            catchFish();// catch:抓鱼 在鼠标按下的时候,进行抓鱼操作
        }

    };
    // 在当前方法中代表当前的 这个(this)pool对象
    this.addMouseListener(m); // 处理这个pool对象鼠标动作
    this.addMouseMotionListener(m);
    net.show = true;// 调试代码

    while (true) {
        // System.out.println("repaint");
        repaint();
        try {
            Thread.sleep(80);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

protected void catchFish() {
    // 鱼在不在网的范围内?在的话就让鱼消失
    for (int i = 0; i < fishs.length; i++) {
        fish = fishs[i];
        if (fish.contains(net.x, net.y)) {// 判断在不在网的范围
            fish.getOut();
            score += fish.width / 10;
        }
    }
}

}

class Fish extends Thread {
int x, y, index = 0, width, height, step;

BufferedImage fishimage;
BufferedImage[] fishimages = new BufferedImage[9];
Random r;

Fish(String fishname) throws IOException {
    // System.out.println("Fish()");
    for (int i = 0; i < 9; i++) {
        // BufferedImage tempfishimage = ImageIO.read(new File(fishname +
        // "_0"
        // + (i + 1) + ".png"));
        BufferedImage tempfishimage = ImageIO.read(getClass()
                .getResourceAsStream(
                        "/images/" + fishname + "_0" + (i + 1) + ".png"));
        fishimages[i] = tempfishimage;
    }
    fishimage = fishimages[index];
    r = new Random();// 不写数字表示的是int范围内的一个数字
    width = fishimage.getWidth();
    height = fishimage.getHeight();
    x = 790;
    y = r.nextInt(470 - height);
    step = r.nextInt(4) + 1;
}

public void run() {
    while (true) {
        try {
            Thread.sleep(50);
            index++;
            fishimage = fishimages[index % fishimages.length];
            // 现在要动,所以要改变图片?300
            x = x - step;
            if (x <= 0 || y <= 0 || y >= 480)
                getOut();
        } catch (Exception e) {
        }
    }
}

// 检查(netx,nety)的坐标是否在鱼的范围之内
public boolean contains(int netx, int nety) {
    int dx = netx - x;
    int dy = nety - y;
    return dx >= 0 && dx <= width && dy >= 0 && dy <= height;
}

void getOut() {
    Random r = new Random();
    x = 790;
    y = r.nextInt(470 - height);
    step = r.nextInt(4) + 1;
}

}

class Net {
// 网的位置随着鼠标指针的移动而移动
BufferedImage netimage = null;
int x = 0, y = 0, width, height;
boolean show;// 是否显示当前网对象

Net() throws Exception {
    // netimage = ImageIO.read(new File("net09.png"));

    netimage = ImageIO.read(getClass().getResourceAsStream(
            "/images/net09.png"));
    show = false;
    width = netimage.getWidth();
    height = netimage.getHeight();
}

}

1个回答

Fishlord类直接extends JFrame,试试

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
JFrame窗体中不显示组建,我的代码完全是书上的代码,但是运行之后就是不显示?求大佬给看一下哪里出问题了

public class MyFrame extends JFrame { public static void main(String []args) { new MyFrame(); } public MyFrame() { Container container = new Container(); container.setLayout(null); JLabel jl = new JLabel("JFrame"); jl.setHorizontalAlignment(SwingConstants.CENTER); JButton bl = new JButton("弹出对话框");// 定义按钮 bl.setBounds(100, 100, 100, 21); bl.setBackground(Color.white); bl.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { new MyJDialog(MyFrame.this).setVisible(true); } }); container.add(bl); container.add(jl); container.setBackground(Color.white); setSize(600, 400); setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); setLocationRelativeTo(null); setVisible(true); } class MyJDialog extends JDialog { public MyJDialog(MyFrame frame) { super(frame, "JDialog", true); Container container1=new Container(); container1.add(new JLabel("JDialog")); setBounds(120, 120, 100, 100); } } }

为什么JFrame中的以标签形式的图标显示不出来?代码如下,谢谢!

import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Logon //implements ActionListener { public Logon() { JFrame f=new JFrame("登陆界面");//建立一个标题为"登陆界面"的窗体 Container contentPane=f.getContentPane();//建立一个虚拟容器Container对象 Icon icon=new ImageIcon("logo.jpg"); JLabel ic=new JLabel(icon); JLabel jlb1=new JLabel("用户名:"); JTextField txt1=new JTextField(15); JLabel jlb2=new JLabel("密码:"); JTextField txt2=new JTextField(15); JButton b1=new JButton("登陆"); JButton b2=new JButton("取消"); contentPane.setLayout(new FlowLayout()); contentPane.add(ic); contentPane.add(jlb1); contentPane.add(txt1); contentPane.add(jlb2); contentPane.add(txt2); contentPane.add(b1); contentPane.add(b2); f.setSize(500,300); f.validate(); f.show(); f.setVisible(true); } public static void main(String args[]) { new Logon(); } }

我swing了一个登陆界面,在eclipse中运行时显示正常,但是生成jar并运行jar后,背景不显示。

![图片说明](https://img-ask.csdn.net/upload/201904/14/1555249560_377777.jpg)![图片说明](https://img-ask.csdn.net/upload/201904/14/1555249570_781286.jpg) 我swing了一个登陆界面,在eclipse中运行时显示正常,但是生成jar并运行jar后,背景不显示。 ``` public class Login extends JFrame { JPanel contentPane; JPasswordField passwordField; public static void main(String[] args) { Login frame = new Login(); } public Login() { setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(600, 300, 600, 400); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); //组件 JLabel label1 = new JLabel("\u6B22\u8FCE\u767B\u9646\u7A3B\u7530\u7EFC\u5408\u79CD\u517B\u4FE1\u606F\u670D\u52A1\u7CFB\u7EDF"); label1.setForeground(Color.BLACK); label1.setFont(new Font("微软雅黑", Font.BOLD, 30)); label1.setHorizontalAlignment(SwingConstants.CENTER); label1.setBounds(34, 51, 511, 53); contentPane.add(label1); JLabel label2 = new JLabel("\u7528\u6237\u540D"); label2.setFont(new Font("宋体", Font.PLAIN, 20)); label2.setForeground(Color.BLACK); label2.setHorizontalAlignment(SwingConstants.CENTER); label2.setBounds(77, 136, 72, 32); contentPane.add(label2); JLabel label3 = new JLabel("\u5BC6\u7801"); label3.setForeground(Color.BLACK); label3.setFont(new Font("宋体", Font.PLAIN, 20)); label3.setHorizontalAlignment(SwingConstants.CENTER); label3.setBounds(77, 208, 72, 32); contentPane.add(label3); setVisible(true); setTitle("登陆"); //登陆界面布局 JButton button1=new JButton("登陆"); button1.setBounds(147, 284, 113, 27); contentPane.add(button1); JTextField textField=new JTextField(); textField.setBounds(177, 140, 302, 24); contentPane.add(textField); textField.setFont(new Font("宋体",Font.PLAIN,20)); textField.setColumns(10); JPasswordField passwordField=new JPasswordField(); passwordField.setBounds(177, 214, 302, 24); passwordField.setFont(new Font("宋体",Font.PLAIN,20)); contentPane.add(passwordField); JButton button2 = new JButton("清除"); button2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { textField.setText(""); passwordField.setText(""); } }); button2.setBounds(330, 284, 113, 27); contentPane.add(button2); //设置背景 ImageIcon imageIcon=new ImageIcon("src/picture/1.jpg"); JLabel label=new JLabel(imageIcon); label.setBounds(0, 0, imageIcon.getIconWidth(), imageIcon.getIconHeight()); getLayeredPane().add(label,new Integer(Integer.MIN_VALUE)); JPanel panel=(JPanel)getContentPane(); panel.setOpaque(false); JPanel panel2=new JPanel(); panel2.setOpaque(false); panel2.setLayout(null); //登陆功能 textField.setText("admin"); passwordField.setText("123"); button1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String str=textField.getText(); char ch[]=passwordField.getPassword(); String pass=new String(ch); /* boolean bool1= str=="admin"; boolean bool2= pass=="123"; System.out.println(bool1); System.out.println(bool2); */ if (str.equals("admin") && pass.equals("123") ){ mainpage p=new mainpage(); dispose(); } else { JOptionPane.showMessageDialog(null, "用户名或密码错误!","登陆失败!",JOptionPane.PLAIN_MESSAGE); } } }); } } ```

JAVA 为什么JFrame中绘图内容一闪而过

单独运行此游戏没有问题(附此游戏代码:https://www.oschina.net/code/snippet_867453_22558) ![图片说明](https://img-ask.csdn.net/upload/201705/31/1496243317_823577.png) 但是我的客户端调用这个游戏 游戏中绘制的内容便一闪而过 鼠标点哪里 哪里才能正常显示 ![图片说明](https://img-ask.csdn.net/upload/201705/31/1496243711_967671.png) JButton button = new JButton("登录"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { new DrawSee(); } 请问是哪里的问题 应该如何解决呢? 谢谢大家

JAVA 窗口为什么不显示里面的内容

public class MainFrame { private JFrame mainframe; private JLabel JL_username; private JLabel JL_password; private JLabel JL2_password; private JTextField JTF_username; private JPasswordField JPF_password; private JPasswordField JPF2_password; private JButton button1; public MainFrame(){ setMainFrame(); } public void setMainFrame(){ mainframe = new JFrame("注册窗口"); mainframe.setBounds(200,100,250,250); mainframe.setVisible(true); mainframe.setResizable(true); setMainFramezujian(); } public void setMainFramezujian(){ JL_username = new JLabel("用户名"); JTF_username = new JTextField(13); JL_password = new JLabel("密码"); JPF_password = new JPasswordField(13); JL2_password = new JLabel("密码"); JPF2_password = new JPasswordField(13); button1 = new JButton("注册"); JPanel p1 = new JPanel(); FlowLayout FL = new FlowLayout(FlowLayout.RIGHT,15,15); p1.setLayout(FL); p1.add(JL_username); p1.add(JTF_username); p1.add(JL_password); p1.add(JPF_password); p1.add(JL2_password); p1.add(JPF2_password); mainframe.add(p1); JPanel p2 = new JPanel(); FlowLayout FL2 = new FlowLayout(FlowLayout.CENTER,15,12); p2.setLayout(FL2); p2.add(button1); mainframe.add(p1); mainframe.add(Box.createVerticalStrut(20),BorderLayout.NORTH); mainframe.add(Box.createHorizontalStrut(10),BorderLayout.EAST); mainframe.add(p2,BorderLayout.SOUTH); } public static void main(String[] args) { MainFrame login = new MainFrame(); } # }运行的结果是一个空的框框,但是鼠标点击一下边框,里面的内容才能正常显示,是怎么回事,代码的问题吗 ``` ```

界面显示。是。对的,输入点计算只能显示无法计算,一个类我文本输入的

package java考试第3题;import javax.swing.*;import java.awt.event.*;public class 界面设计 extends JFrame implements ActionListener{ JPanel jp; JTextField jtf1,jtf2; JButton jb; JTextArea jta; 设置圆柱体 m; public 界面设计(){ this.setTitle("计算圆柱体体积"); this.setBounds(100,100,400,200); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jp=new JPanel(); jp.add(new JLabel("底面半径:")); jtf1=new JTextField(5); jp.add(jtf1); jp.add(new JLabel("高:")); jtf2=new JTextField(5); jp.add(jtf2); jb=new JButton("计算体积"); jb.addActionListener(this); jp.add(jb); this.getContentPane().add(jp,"South"); jta=new JTextArea(5,20); this.getContentPane().add(jta); this.setVisible(true); } public void actionPerformed(ActionEvent e){ try { int r=Integer.parseInt(jtf1.getText()); int h=Integer.parseInt(jtf2.getText()); m.setR(r); m.setH(h); //double rescult=r*r*3.14*h; jta.append( "圆柱体的底面半径是:"+r+"圆柱体的高是:"+h+"\n"+ "圆柱体的体积是:"+m.getv()/*recult*/+"\n"); } catch(Exception ex){ jta.append("无法计算体积!"+"\n"); } }}![图片](https://img-ask.csdn.net/upload/201710/28/1509203998_240045.png)![图片](https://img-ask.csdn.net/upload/201710/28/1509204062_506981.png)

eclipse运行swing和生成的jar运行效果不同,jar运行时背景不能显示

我swing了一个登陆界面,但是生成jar文件运行后,背景不能显示(功能正常)。 ``` public class Login extends JFrame { JPanel contentPane; JPasswordField passwordField; public static void main(String[] args) { Login frame = new Login(); } public Login() { setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(600, 300, 600, 400); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); contentPane.setLayout(null); //组件 JLabel label1 = new JLabel("\u6B22\u8FCE\u767B\u9646\u7A3B\u7530\u7EFC\u5408\u79CD\u517B\u4FE1\u606F\u670D\u52A1\u7CFB\u7EDF"); label1.setForeground(Color.BLACK); label1.setFont(new Font("微软雅黑", Font.BOLD, 30)); label1.setHorizontalAlignment(SwingConstants.CENTER); label1.setBounds(34, 51, 511, 53); contentPane.add(label1); JLabel label2 = new JLabel("\u7528\u6237\u540D"); label2.setFont(new Font("宋体", Font.PLAIN, 20)); label2.setForeground(Color.BLACK); label2.setHorizontalAlignment(SwingConstants.CENTER); label2.setBounds(77, 136, 72, 32); contentPane.add(label2); JLabel label3 = new JLabel("\u5BC6\u7801"); label3.setForeground(Color.BLACK); label3.setFont(new Font("宋体", Font.PLAIN, 20)); label3.setHorizontalAlignment(SwingConstants.CENTER); label3.setBounds(77, 208, 72, 32); contentPane.add(label3); setVisible(true); setTitle("登陆"); //登陆界面布局 JButton button1=new JButton("登陆"); button1.setBounds(147, 284, 113, 27); contentPane.add(button1); JTextField textField=new JTextField(); textField.setBounds(177, 140, 302, 24); contentPane.add(textField); textField.setFont(new Font("宋体",Font.PLAIN,20)); textField.setColumns(10); JPasswordField passwordField=new JPasswordField(); passwordField.setBounds(177, 214, 302, 24); passwordField.setFont(new Font("宋体",Font.PLAIN,20)); contentPane.add(passwordField); JButton button2 = new JButton("清除"); button2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { textField.setText(""); passwordField.setText(""); } }); button2.setBounds(330, 284, 113, 27); contentPane.add(button2); //设置背景 ImageIcon imageIcon=new ImageIcon("src/picture/1.jpg"); JLabel label=new JLabel(imageIcon); label.setBounds(0, 0, imageIcon.getIconWidth(), imageIcon.getIconHeight()); getLayeredPane().add(label,new Integer(Integer.MIN_VALUE)); JPanel panel=(JPanel)getContentPane(); panel.setOpaque(false); JPanel panel2=new JPanel(); panel2.setOpaque(false); panel2.setLayout(null); //登陆功能 textField.setText("admin"); passwordField.setText("123"); button1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String str=textField.getText(); char ch[]=passwordField.getPassword(); String pass=new String(ch); /* boolean bool1= str=="admin"; boolean bool2= pass=="123"; System.out.println(bool1); System.out.println(bool2); */ if (str.equals("admin") && pass.equals("123") ){ mainpage p=new mainpage(); dispose(); } else { JOptionPane.showMessageDialog(null, "用户名或密码错误!","登陆失败!",JOptionPane.PLAIN_MESSAGE); } } }); } }net/upload/201904/14/1555247311_358896.jpg) ``` ![图片说明](https://img-ask.csdn.net/upload/201904/14/1555247337_155549.jpg) ![图片说明](https://img-ask.csdn.net/upload/201904/14/1555247348_816294.jpg)

编写一个java代码接受用户输入的账号和密码 给三次机会。但是运行后输入后显示错误。

package www; import java.awt.*; import javax.swing.*; import java.awt.event.*; public class SwingJFrame extends JFrame implements ActionListener{ JLabel jb1=new JLabel("输入帐号:"); JLabel jb2=new JLabel("输入密码:"); JLabel jb3=new JLabel("显示结果"); JButton jbu=new JButton("提交"); JTextField jt=new JTextField(6); JTextField ji=new JTextField(6); private static int i=1,k=3; JPasswordField jp=new JPasswordField(8); SwingJFrame() { super("输入数据面板"); setSize(400,500); setVisible(true); setDefaultCloseOperation(EXIT_ON_CLOSE); setLayout(new FlowLayout()); add(jb1); add(jt); add(jb2); add(jp); add(jbu); add(jb3); add(ji); jp.setEchoChar('*'); jbu.addActionListener(this); validate(); } public void actionPerformed(ActionEvent e) { int b = 1,c; if(jp.getText().equals("1")&&(jt.getText().equals("weidianlun"))==true) ji.setText("密码正确"); else { /*while(i<=4) { if(jp.getText().equals("1")||(jt.getText().equals("weidianlun"))==false) { ji.setText("剩余"+k+"次机会"); k++; if(i==4) { jp.setEditable(false); ji.setEditable(false); } } i++; } */ //c = k - b; //b++; k--; ji.setText("剩余"+k+"次机会"); jbu.addActionListener(this); } } public static void main(String[] args) { // TODO Auto-generated method stub new SwingJFrame(); } }

界面时而显示不了或组件显示不全,不知是什么问题,请帮忙看下代码吧

package com.wangyj.kindergarten.ui.frames; import java.awt.BorderLayout; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.HeadlessException; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; 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.JSeparator; import javax.swing.JTextField; import com.wangyj.kindergarten.business.AdminBusiness; import com.wangyj.kindergarten.business.impl.AdminBusinessImpl; public class LoginFrame extends JFrame { private AdminBusiness adminBiz=new AdminBusinessImpl(); private JPanel northPanel = new JPanel(); private JPanel centerPanel = new JPanel(); private JPanel southPanel=new JPanel(); private JLabel imageLabel=new JLabel(); private JTextField adminNameText=new JTextField(); private JPasswordField adminPwd=new JPasswordField(); private JButton loginButton=new JButton(); public LoginFrame() throws HeadlessException { this.init(); } private void init(){ this.setVisible(true); this.setSize(350, 280); this.setResizable(false); this.setTitle("幼儿园管理系统"); this.setLayout(new BorderLayout()); this.setIconImage(new ImageIcon("images/8.jpg").getImage()); int width=(int)Toolkit.getDefaultToolkit().getScreenSize().getWidth()/2; int height=(int)Toolkit.getDefaultToolkit().getScreenSize().getHeight()/2; setLocation(width-getWidth()/2,height-getHeight()/2); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.add(northPanel,BorderLayout.NORTH); this.add(centerPanel,BorderLayout.CENTER); this.add(southPanel,BorderLayout.SOUTH); JPanel panel1=new JPanel(new BorderLayout()); // JPanel panel2=new JPanel(new BorderLayout()); JPanel panel2=new JPanel(new GridLayout(1,3,3,0)); JPanel panel3=new JPanel(new BorderLayout()); // panel1.setBorder(BorderFactory.createEtchedBorder()); northPanel.add(panel1); centerPanel.add(panel2); southPanel.add(panel3); /********************************************************************************/ JPanel inner1=new JPanel(new GridLayout(1,1)); imageLabel.setIcon(new ImageIcon("images/7.jpg")); inner1.add(imageLabel); panel1.add(new JSeparator(),BorderLayout.NORTH); panel1.add(inner1,BorderLayout.CENTER); panel1.add(new JSeparator(),BorderLayout.SOUTH); /********************************************************************************/ JLabel adminNameLabel=new JLabel("管理员帐号:"); JLabel adminPwdLabel=new JLabel("管理员密码:"); JPanel inner2=new JPanel(new GridLayout(2,1,0,12)); JPanel inner2_1=new JPanel(new FlowLayout(FlowLayout.RIGHT)); JPanel inner2_2=new JPanel(new FlowLayout(FlowLayout.RIGHT)); inner2_1.add(adminNameLabel); inner2_2.add(adminPwdLabel); inner2.add(inner2_1); inner2.add(inner2_2); panel2.add(inner2); JPanel inner3=new JPanel(new GridLayout(2,1,0,12)); adminNameText.setText("请输入帐号名..."); adminNameText.setColumns(15); adminPwd.setColumns(15); inner3.add(adminNameText); inner3.add(adminPwd); panel2.add(inner3); JPanel inner4=new JPanel(new GridLayout(2,1,0,12)); inner4.add(new JLabel("*")); inner4.add(new JLabel("*")); panel2.add(inner4); /********************************************************************************/ JPanel inner5=new JPanel(new GridLayout(1,5)); loginButton.setText("登 录"); // loginButton.setMnemonic(KeyEvent.VK_ENTER); inner5.add(loginButton); inner5.add(new JPanel()); inner5.add(new JPanel()); inner5.add(new JPanel()); inner5.add(new JPanel()); panel3.add(new JSeparator(),BorderLayout.NORTH); panel3.add(inner5,BorderLayout.CENTER); /*******************************************************************************/ adminNameText.addMouseListener(new MouseAdapter(){ @Override public void mousePressed(MouseEvent e) { adminNameText.setText(""); } }); loginButton.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { login(); } }); loginButton.addKeyListener(new KeyAdapter(){ public void keyPressed(KeyEvent e) { if(e.getKeyChar()==KeyEvent.VK_ENTER){ System.out.println("enter....."); login(); } } }); } private void login(){ String name=adminNameText.getText().trim(); String password=String.valueOf(adminPwd.getPassword()).trim(); if(name.equals("")||name==null||password.equals("")||password==null){ JOptionPane.showMessageDialog(this, "帐号或密码不能为空!"); }else{ boolean success=adminBiz.login(name, password); if(success){ new MainFrame(); this.setVisible(false); }else{ JOptionPane.showMessageDialog(this, "帐号、密码不正确!"); } } } public static void main(String[] args){ new LoginFrame(); } }

在actionPerformed函数外部写了一个函数用作调用可是运行失败了,如上图;但是将这个函数功能写到actionPerformed函数中程序就正常了请问是什么问题

![图片说明](https://img-ask.csdn.net/upload/202004/13/1586788066_706206.png) ``` package my; import java.awt.Color; import java.awt.Container; import java.awt.FlowLayout; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.text.SimpleDateFormat; import java.util.Date; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; public class MyFrame extends JFrame { /** * */ public MyFrame(String title) { super(title); // 内容面板 (ContentPane) Container contentPane = getContentPane(); contentPane.setLayout(new FlowLayout()); JLabel label=new JLabel("hello"); contentPane.add(label); JCheckBox check=new JCheckBox("是否订阅杂志以及订阅杂志的标号"); contentPane.add(check); JTextField txt=new JTextField(16); contentPane.add(txt); check.setSelected(true); check.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (check.isSelected()) txt.setEnabled(true); else txt.setEnabled(false); } }); } } } ```

我用java写了一个简易计算器的程序,但是有时候结果不正确

就是有时候计算结果后面会显示很多9或者0 ,比如计算8.3-2.1时,请问大神怎么解决啊? 我是菜菜鸟,程序如下: //Calculator.java import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Calculator extends JFrame { private JPanel p1=new JPanel(); private JButton numberButton[]=new JButton[10]; private String buttonName[]={"1","2","3","4","5","6","7","8","9","0"}; private JButton plusButton; private JButton subButton; private JButton mulButton; private JButton divButton; private JButton pointButton; private JButton calButton; private JTextField tf=new JTextField(""); private String add1=""; private String add2=""; private String output=""; private double Result; private boolean Op=false; private boolean OpClicked=false; private int Option=0; public keshihua2(){ super("简易计算器"); getContentPane().setLayout(new BorderLayout()); p1.setLayout(new GridLayout(4,4,10,10)); p1.setBounds(10,10,230,120); for(int i=0;i<10;i++) { numberButton[i]=new JButton(buttonName[i]); numberButton[i].addActionListener(new Number()); p1.add(numberButton[i]); } plusButton=new JButton("+"); plusButton.addActionListener(new Plus()); p1.add(plusButton); subButton=new JButton("-"); subButton.addActionListener(new sub()); p1.add(subButton); mulButton=new JButton("*"); mulButton.addActionListener(new mul()); p1.add(mulButton); divButton=new JButton("/"); divButton.addActionListener(new div()); p1.add(divButton); pointButton=new JButton("."); pointButton.addActionListener(new point()); p1.add(pointButton); calButton=new JButton("="); calButton.addActionListener(new Cal()); p1.add(calButton); getContentPane().add(p1,BorderLayout.CENTER); tf.setBounds(10,150,230,20); tf.setHorizontalAlignment(JTextField.RIGHT); getContentPane().add(tf,BorderLayout.NORTH); validate(); setSize(240,200); setLocation(400,200); setResizable(false); setVisible(true); } class Number implements ActionListener //数字键的监听 { public void actionPerformed(ActionEvent e) { if(!OpClicked) { add1+=e.getActionCommand(); output=""+add1; tf.setText(output); } else { add2+=e.getActionCommand(); output+=e.getActionCommand(); tf.setText(output); } } } class Plus implements ActionListener //加号的监听 { public void actionPerformed(ActionEvent e) { OpClicked=!OpClicked; Op=!Op; Option=1; output+=" + "; tf.setText(output); } } class sub implements ActionListener //减号的监听 { public void actionPerformed(ActionEvent e) { OpClicked=!OpClicked; Op=!Op; Option=2; output+=" - "; tf.setText(output); } } class mul implements ActionListener //乘号的监听 { public void actionPerformed(ActionEvent e) { OpClicked=!OpClicked; Op=!Op; Option=3; output+=" * "; tf.setText(output); } } class div implements ActionListener //除号的监听 { public void actionPerformed(ActionEvent e) { OpClicked=!OpClicked; Op=!Op; Option=4; output+=" / "; tf.setText(output); } } class point implements ActionListener //小数点的监听 { public void actionPerformed(ActionEvent e) { if(!Op){ add1+="."; } else{ add2+="."; output+="."; } } } class Cal implements ActionListener //等号的监听 { public void actionPerformed(ActionEvent e) {switch(Option){ case 1: Result=Double.parseDouble(add1)+Double.parseDouble(add2);break; case 2: Result=Double.parseDouble(add1)-Double.parseDouble(add2);break; case 3: Result=Double.parseDouble(add1)*Double.parseDouble(add2);break; case 4: Result=Double.parseDouble(add1)/Double.parseDouble(add2);break; default:Option=0;} output+=" = "; tf.setText(output+Double.toString(Result)); OpClicked=false; Op=false; add1=""; add2=""; } } public static void main(String args[]) { keshihua2 calculator=new keshihua2(); calculator.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } }

做一个图形界面可以出题判断对错我将题目和答案写了方法返回字符串数组但是评分的监听器接收不到相应数据?

package suanShu; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JTextField; import java.util.Random; public class tuxing { public static void main(String[] args) { // TODO 自动生成的方法存根 JFrame frame=new JFrame("初级计算");//窗体名称 JButton chuti=new JButton("出题");//出题按钮 JButton pingfen=new JButton("评分");//评分按钮 JLabel ques=new JLabel("请按出题按钮");//问题标签 JLabel xinxi=new JLabel("评分信息"); JTextField useranswer=new JTextField(10);//用户答案 String str[]=new String[2]; chuti.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0){ if(arg0.getSource()==chuti){//出题按钮事件监听 str=shuiji(); //str错误提示Local variable str defined in an enclosing scope must be final or effectively final ques.setText(str[0]); System.out.println(str[0]); System.out.println(str[1]); } } }); pingfen.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent arg0){ if(arg0.getSource()==pingfen){ if(useranswer.getText().equals("")){ xinxi.setText("答案不能为空!"); } System.out.println(str[1]); if(str[1].equals(useranswer.getText())){ xinxi.setText("答案正确"); }else{ xinxi.setText("答案错误"); } } } }); ques.setBounds(40, 10, 100, 20); useranswer.setBounds(130, 10, 80,20); chuti.setBounds(40,40,60,20); pingfen.setBounds(130, 40, 60, 20); xinxi.setBounds(40,70,120,20); frame.setLayout(null);//布局管理 frame.add(useranswer); frame.add(ques); frame.add(pingfen); frame.add(chuti);//添加组件 frame.add(xinxi); frame.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent arg0){ System.exit(1); } }); frame.setSize(250, 150);//设置属性 frame.setLocation(500,300); frame.setVisible(true); } public static String[] shuiji(){ Random r=new Random(); int a=0; int b=0; int d=0; String str[]=new String[2]; a=r.nextInt(10); b=r.nextInt(10); d=r.nextInt(4); if(d==0){ str[0]=a+" + "+b+" = "; int sum=a+b; str[1]=String.valueOf(sum); return str; } else if(d==1){ do{ a=r.nextInt(10); b=r.nextInt(10); }while(a-b<0); str[0]=a+" - "+b+" = "; int sum=a-b; str[1]=String.valueOf(sum); return str; } else if(d==2){ str[0]=a+" * "+b+" = "; int sum=a*b; str[1]=String.valueOf(sum); return str; } else if(d==3){ if(b==0){ do{ b=r.nextInt(10); }while(b==0); str[0]=a+" / "+b+" = "; int sum=a/b; str[1]=String.valueOf(sum); return str; }else{ str[0]=a+" / "+b+" = "; int sum=a/b; str[1]=String.valueOf(sum); return str; } } return null; } }

java 简易c/s通信问题

![图片说明](https://img-ask.csdn.net/upload/201906/04/1559658149_625629.png) ![图片说明](https://img-ask.csdn.net/upload/201906/04/1559658156_870150.png) 问题1:程序打开原样是图1的样子,什么都不显示,只有把程序最大化,然后最小化才恢复正常,请问是什么原样 问题2:BufferedReader缓冲区和BufferedWriter缓冲区的readLine()方法是阻塞方法?如果发送端没有发送结束标记,接收端是不是就一直停在readLine方法 问题3: Client 类用来从文本框里读取字符串传输,文本区域没有作用 Server 类用来接收Client发送的数据,界面都是一样的,只接收没有发送功能 ``` class WindowByClient extends JFrame implements ActionListener{ JButton send; JTextField text; JTextArea area; Socket client; BufferedWriter out; WindowByClient(){ super("发送程序"); this.setLayout(new FlowLayout()); this.setSize(300,300); this.setLocationRelativeTo(null); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); init(); } void init(){ send = new JButton("发送"); text=new JTextField(10); area=new JTextArea(9,16); JScrollPane jsp=new JScrollPane(area); area.setEditable(false); this.add(send); this.add(text); this.add(jsp); try { client=new Socket("127.0.0.1",9999); out=new BufferedWriter(new OutputStreamWriter(client.getOutputStream())); } catch (IOException e) {} send.addActionListener(this); } void sendMethod(){ try { out.write(text.getText()); out.flush(); } catch (IOException e) {} } public void actionPerformed(ActionEvent arg) { if(arg.getSource()==send){ sendMethod(); } } } public class Client { public static void main(String[] args) { new WindowByClient(); } } ``` ``` class WindowByServer extends JFrame{ JButton send; JTextField text; JTextArea area; ServerSocket server; Socket s; BufferedReader in; WindowByServer(){ super("发送程序"); this.setLayout(new FlowLayout()); this.setSize(300,300); this.setLocationRelativeTo(null); this.setVisible(true); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); init(); } void init(){ send = new JButton("发送"); text=new JTextField(10); area=new JTextArea(9,16); JScrollPane jsp=new JScrollPane(area); area.setEditable(false); this.add(send); this.add(text); this.add(jsp); try { server=new ServerSocket(); s=server.accept(); in=new BufferedReader(new InputStreamReader(s.getInputStream())); } catch (IOException e) {} receiveMethod(); } void receiveMethod(){ String str=null; try { while(true){ while((str=in.readLine())!=null){ if(!str.equals(null)){ area.append(str); } } } } catch (IOException e) {} } } public class Server { public static void main(String[] args) { new WindowByServer(); } } ``` ``` Exception in thread "main" java.lang.NullPointerException at Demo_1.WindowByServer.receiveMethod(Server.java:58) at Demo_1.WindowByServer.init(Server.java:52) at Demo_1.WindowByServer.<init>(Server.java:32) at Demo_1.Server.main(Server.java:69) ``` 请问 while((str=in.readLine())!=null) 这句话为什么会报错

【学生一枚,请大神指教】关于Java中组件及事件处理,希望哪位大神可以帮看代码,提出建议

题目描述: ![图片说明](https://img-ask.csdn.net/upload/201704/13/1492090575_763617.jpg) 编写一个算术测试小软件,程序由3个类组成,其中Teacher类对象负责给出加减算术运算题目,并判断回答者的答案是否正确;ComputerFrame类对象负责为算术题目提供视图,例如用户可以通过ComputerFrame类对象提供的GUI界面看到题目,并通过该GUI界面输入答案;MailClasss是软件的主类。 小白一枚,初学Java,上面是一道简单的题,虽然可以实现出来,但是不知道这样写是否可以。如果作为一个Java工程师,您对下面的代码会有什么建议,小白想着一开始便形成一种良好的写代码方式或者思维模式,希望各位大神可以批评建议一下,在这里给各位路过的大神提前拜个早年了,祝您新年快乐!! @+_+@ 代码如下: ComputerFrame类: import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.util.*; public class ComputerFrame extends JFrame{ public static JLabel label; JMenuBar bar; JMenu menu; JButton button1,button2; JTextField text1,text2,text3; public ComputerFrame(){ init(); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public void init(){ setLayout(new FlowLayout()); //setTitle("算术测试");凭什么布局不用对象.设置,title却用 bar=new JMenuBar(); menu=new JMenu("选择级别"); button1=new JButton("获取题目"); button2=new JButton("确认答案"); text1=new JTextField(5); text2=new JTextField(5); text3=new JTextField(5); menu.add(new JMenuItem("小学生级别")); bar.add(menu); add(bar); setJMenuBar(bar); add(button1); add(text1); add(new JLabel("+")); add(text2); add(new JLabel("=")); add(text3); add(button2); label=new JLabel("啥也没有"); add(label); } public void setListener(Teacher listener){ listener.setText1(text1); listener.setText2(text2); listener.setText3(text3); listener.setButton1(button1); listener.setButton2(button2); button1.addActionListener(listener); button2.addActionListener(listener); //add(label); } } Teacher类 import java.awt.*; import javax.swing.*; import java.awt.event.*; import java.util.*; public class Teacher implements ActionListener{ JButton button1,button2; JTextField text1,text2,text3; int r1,r2; //JLabel label; public void setText1(JTextField text1){ this.text1=text1; } public void setText2(JTextField text2){ this.text2=text2; } public void setText3(JTextField text3){ this.text3=text3; } public void setButton1(JButton button1){ this.button1=button1; } public void setButton2(JButton button2){ this.button2=button2; } /*public void setJLabel(JLabel label){ this.label=label; } public JLabel getJLabel(){ return label; }*/ public void actionPerformed(ActionEvent e){ if(e.getSource()==button1){ Random random=new Random(); r1=random.nextInt(100); r2=random.nextInt(100); text1.setText(Integer.toString(r1)); text2.setText(Integer.toString(r2)); } if(e.getSource()==button2){ if(Integer.parseInt(text3.getText())==(r1+r2)){ ComputerFrame.label.setText("回答正确"); } else ComputerFrame.label.setText("回答错误"); } } } MailClass类: public class MailClass { public static void main(String args[]){ ComputerFrame win=new ComputerFrame(); win.setTitle("算术测试"); win.setBounds(100,100,460,310); Teacher listener=new Teacher(); win.setListener(listener); } }

我根据网上的代码编写了点东西,为什么无法正确执行?

package com.excel; import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.List; import javax.swing.JTextArea; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFDateUtil; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.POIFSFileSystem; /** * 解析Excel的类 */ public class ExcelOperate { private JTextArea area; private String fileName; /** * 构造方法传值 * * @param area * 显示Excel内容的位置 * @param fileName * Excel文件名 */ public ExcelOperate(JTextArea area, String fileName) { this.area = area; this.fileName = fileName; } /** * 解析Excel文件 */ public void parseExcel() { File file = new File(fileName); String[][] result = null; try { result = getData(file, 1); } catch (IOException e) { e.printStackTrace(); } int rowLength = result.length; for (int i = 0; i < rowLength; i++) { for (int j = 0; j < result[i].length; j++) { area.append(result[i][j] + "\t\t"); } area.append("\n"); } } /** * 读取Excel的内容,第一维数组存储的是一行中格列的值,二维数组存储的是多少个行 * * @param file * 读取数据的源Excel * @param ignoreRows * 读取数据忽略的行数,比喻行头不需要读入 忽略的行数为1 * @return 读出的Excel中数据的内容 * @throws FileNotFoundException * @throws IOException */ public static String[][] getData(File file, int ignoreRows) throws FileNotFoundException, IOException { List<String[]> result = new ArrayList<String[]>(); int rowSize = 0; BufferedInputStream in = new BufferedInputStream(new FileInputStream( file)); // 打开HSSFWorkbook POIFSFileSystem fs = new POIFSFileSystem(in); HSSFWorkbook wb = new HSSFWorkbook(fs); HSSFCell cell = null; for (int sheetIndex = 0; sheetIndex < wb.getNumberOfSheets(); sheetIndex++) { HSSFSheet st = wb.getSheetAt(sheetIndex); // 第一行为标题,不取 for (int rowIndex = ignoreRows; rowIndex <= st.getLastRowNum(); rowIndex++) { HSSFRow row = st.getRow(rowIndex); if (row == null) { continue; } int tempRowSize = row.getLastCellNum() + 1; if (tempRowSize > rowSize) { rowSize = tempRowSize; } String[] values = new String[rowSize]; Arrays.fill(values, ""); boolean hasValue = false; for (short columnIndex = 0; columnIndex <= row.getLastCellNum(); columnIndex++) { String value = ""; cell = row.getCell(columnIndex); if (cell != null) { switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_STRING: value = cell.getStringCellValue(); break; case HSSFCell.CELL_TYPE_NUMERIC: if (HSSFDateUtil.isCellDateFormatted(cell)) { Date date = cell.getDateCellValue(); if (date != null) { value = new SimpleDateFormat("yyyy-MM-dd") .format(date); } else { value = ""; } } else { value = new DecimalFormat("0").format(cell .getNumericCellValue()); } break; case HSSFCell.CELL_TYPE_FORMULA: // 导入时如果为公式生成的数据则无值 if (!cell.getStringCellValue().equals("")) { value = cell.getStringCellValue(); } else { value = cell.getNumericCellValue() + ""; } break; case HSSFCell.CELL_TYPE_BLANK: break; case HSSFCell.CELL_TYPE_ERROR: value = ""; break; case HSSFCell.CELL_TYPE_BOOLEAN: value = (cell.getBooleanCellValue() == true ? "Y" : "N"); break; default: value = ""; } } if (columnIndex == 0 && value.trim().equals("")) { break; } values[columnIndex] = rightTrim(value); hasValue = true; } if (hasValue) { result.add(values); } } } in.close(); String[][] returnArray = new String[result.size()][rowSize]; for (int i = 0; i < returnArray.length; i++) { returnArray[i] = (String[]) result.get(i); } return returnArray; } /** * 去掉字符串右边的空格 * * @param str * 要处理的字符串 * @return 处理后的字符串 */ public static String rightTrim(String str) { if (str == null) { return ""; } int length = str.length(); for (int i = length - 1; i >= 0; i--) { if (str.charAt(i) != 0x20) { break; } length--; } return str.substring(0, length); } } ------------------------------------------------------------------------------------------ package com.excel; import java.awt.BorderLayout; import java.awt.Toolkit; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.UIManager; import javax.swing.filechooser.FileNameExtensionFilter; /** * 主界面,按钮响应事件,文本域输出Excel内容 */ public class OpenExcel extends JFrame implements ActionListener { private JButton button; private JScrollPane pane; private JTextArea area; public OpenExcel() { super("解析Excel"); button = new JButton("点我选择Excel文件"); button.addActionListener(this); area = new JTextArea(); pane = new JScrollPane(area); this.add(button, BorderLayout.NORTH); this.add(pane); this.setSize(300, 300); this.setLocationRelativeTo(null); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } // 按钮事件 public void actionPerformed(ActionEvent e) { JFileChooser chooser = new JFileChooser();// 文件选择对话框 chooser.setAcceptAllFileFilterUsed(false);// 取消所有文件过滤项 chooser.setFileFilter(new FileNameExtensionFilter("Excel文件", "xls"));// 设置只过滤扩展名为.xls的Excel文件 int i = chooser.showOpenDialog(this);// 打开窗口 if (i == JFileChooser.APPROVE_OPTION) { this.setLocation(0, 0); this.setSize(Toolkit.getDefaultToolkit().getScreenSize()); new ExcelOperate(area, chooser.getSelectedFile().getAbsolutePath()) .parseExcel(); } } public static void main(String[] args) throws Exception { UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); new OpenExcel(); } }大神帮忙看一下,excel数据导入不进去怎么回事?![图片](https://img-ask.csdn.net/upload/201706/01/1496326764_634674.jpg)

用java写的一个日历程序,新手看不懂,有没有大佬帮忙注释一下每个模块的意思和作用!!!

``` package Calendar; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Calendar; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.border.Border; import javax.swing.border.EtchedBorder; import javax.swing.*; //图形用户界面设计 public class Calendarshowing { static Calendar c = Calendar.getInstance(); static int year = c.get(Calendar.YEAR), month = c.get(Calendar.MONTH)+1,monthday = 0; static String[] weekdaystr = { "日", "一", "二", "三", "四", "五", "六" };//设置星期日.一.二.三.四.五.六 JFrame frame = new JFrame("日历表"); // JPanel panel = new JPanel(); static JLabel[]dayLabel = new JLabel[49];//是7行7列的GridLayout布局,pCenter的中放置49个标签,用来显示日历 static JPanel showPanel; //放置两个按钮:nextMonth和previousMonth按钮,单击nextMonth(下一月),可以显示当前月的下一个月的日历;单击previousMonth(上一月)按钮,可以显示当前月的上一个月的日历 JButton Prebutton = new JButton("上一月");//查看上一月的特定按钮 JButton Nextbutton = new JButton("下一月");//查看下一月的特定按钮 JButton Cbutton = new JButton("查询( 请输入正确的年和月 )");//查询的特定按钮 JLabel showLabel = new JLabel(); JLabel YearLabel=new JLabel("年");//查询中输入年的特定按钮 JLabel MonthLabel=new JLabel("月");//查询中输入月的特定按钮 JTextArea YearText=new JTextArea("2017");//查询中输入年的初始值 JTextArea MonthText=new JTextArea("4");//查询中输入月的初始值 static Border Border01 = BorderFactory.createLineBorder(Color.BLUE, 1); public Calendarshowing() { //frame.setResizable(false); showPanel = new JPanel(); frame.setBounds(400, 200, 500, 400);//窗体所在位置、大小 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container content = frame.getContentPane(); final JPanel buttonPanel = new JPanel(); buttonPanel.setLayout(new FlowLayout()); Cbutton.addActionListener(new PressButton()); Prebutton.addActionListener(new PressButton()); Nextbutton.addActionListener(new PressButton()); buttonPanel.add(Prebutton); buttonPanel.add(Nextbutton); buttonPanel.add(YearText); buttonPanel.add(YearLabel); buttonPanel.add(MonthText); buttonPanel.add(MonthLabel); buttonPanel.add(Cbutton); content.add(buttonPanel, BorderLayout.NORTH); final GridLayout gridLayout = new GridLayout(0, 7); gridLayout.setHgap(10); gridLayout.setVgap(10); showPanel.setLayout(gridLayout); showLabel.setHorizontalAlignment(JLabel.CENTER); showLabel.setText("<html><Font size = '6',color = 'RED'>"+"日历: "+"<html><Font size='4',color='Green'>"+year+"年"+month+"月"+"</Font></html>"); showLabel.setToolTipText("今天是公元"+c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DATE)+"日"); content.add(showLabel,BorderLayout.SOUTH); content.add(showPanel, BorderLayout.CENTER); frame.setVisible(true); } public class PressButton implements ActionListener { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub JButton button = (JButton)e.getSource(); if (button == Prebutton) { month--; if (month <= 0){ year--; month+=12; } } else{ if(button == Nextbutton){ month++; if (month > 12){ year++; month-=12; } } else{ // System.out.println(Double.valueOf(CText.getText())); // System.out.println(c.get(Calendar.YEAR)); while(Double.valueOf(YearText.getText())*12+Double.valueOf(MonthText.getText())<year*12+month){ month--; if (month <= 0){ year--; month+=12; } } while(Double.valueOf(YearText.getText())*12+Double.valueOf(MonthText.getText())>year*12+month){ month++; if (month >12){ year++; month-=12; } } } } showPanel.removeAll(); showPanel.updateUI(); new showing(); showLabel.setHorizontalAlignment(JLabel.CENTER); showLabel.setText("<html><Font size = '6',color = 'RED'>"+"日历: "+"<html><Font size='4',color='Green'>"+year+"年"+month+"月"+"</Font></html>"); showLabel.setToolTipText("今天是公元"+c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DATE)+"日"); } } static class showing{ public boolean isLeapYear(int year1) // 判断该年是否为闰年 { return ((year1 % 4 == 0 && year1 % 100 != 0) || (year1 % 400 == 0)); } public int firstDay() // 用来计算并判断该年第一天是星期几 { long n = year * 365; for (int i = 1; i < year; i++){ if (isLeapYear(i)){ n++; } } return (int)n%7; } public void printWeek() // 设置图形界面的表头 { for (int i = 0; i < 7; i++) { dayLabel[i] = new JLabel(weekdaystr[i],JLabel.CENTER); dayLabel[i].setBackground(Color.BLACK); dayLabel[i].setForeground(Color.RED); showPanel.add(dayLabel[i]); } } public int getMonthDay(int m) // 获取每个月的天数 { switch (m) { //月份为1、3、5、7、8、10、12,天数为31; case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; //月份为4、6、9、11,天数为30; case 4: case 6: case 9: case 11: return 30; //闰年2月份,天数为29,非闰年,天数为28 case 2: if (isLeapYear(year)) return 29; else return 28; default: return 0; } } public int getDays(){ monthday = 0; for (int i = 1;i<month;i++) monthday+=getMonthDay(i); return (firstDay()+(monthday%7))%7; } public showing(){ int n =1 ; printWeek(); int k = getDays(); int Year = c.get(Calendar.YEAR); int Month = c.get(Calendar.MONTH); Month += 1; int Date = c.get(Calendar.DATE); for (int j = 7;n<=getMonthDay(month);j++){ if (j < k+7){ dayLabel[j] = new JLabel(); showPanel.add(dayLabel[j]); } else{ dayLabel[j] = new JLabel(""+n,JLabel.CENTER); dayLabel[j].setToolTipText("星期"+weekdaystr[(j)%7]); if (Year == year&&Month==month&&Date == n){ dayLabel[j].setText("<html><Font size = '6',color = 'BLUE'>"+n+"</Font></html>"); dayLabel[(Date-1)%7].setForeground(Color.BLUE); } showPanel.add(dayLabel[j]); n++; } } showPanel.setBorder(Border01); } } public static void main(String[] args) { Calendarshowing c = new Calendarshowing(); showing s = new Calendarshowing.showing(); } } ```

用java写的一个日历程序,因为答辩急着用,有没有大佬帮忙注释一下每个模块的作用!!!

``` package Calendar; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Container; import java.awt.FlowLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.Calendar; import javax.swing.BorderFactory; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.border.Border; import javax.swing.border.EtchedBorder; import javax.swing.*; //图形用户界面设计 public class Calendarshowing { static Calendar c = Calendar.getInstance(); static int year = c.get(Calendar.YEAR), month = c.get(Calendar.MONTH)+1,monthday = 0; static String[] weekdaystr = { "日", "一", "二", "三", "四", "五", "六" };//设置星期日.一.二.三.四.五.六 JFrame frame = new JFrame("日历表"); // JPanel panel = new JPanel(); static JLabel[]dayLabel = new JLabel[49];//是7行7列的GridLayout布局,pCenter的中放置49个标签,用来显示日历 static JPanel showPanel; //放置两个按钮:nextMonth和previousMonth按钮,单击nextMonth(下一月),可以显示当前月的下一个月的日历;单击previousMonth(上一月)按钮,可以显示当前月的上一个月的日历 JButton Prebutton = new JButton("上一月");//查看上一月的特定按钮 JButton Nextbutton = new JButton("下一月");//查看下一月的特定按钮 JButton Cbutton = new JButton("查询( 请输入正确的年和月 )");//查询的特定按钮 JLabel showLabel = new JLabel(); JLabel YearLabel=new JLabel("年");//查询中输入年的特定按钮 JLabel MonthLabel=new JLabel("月");//查询中输入月的特定按钮 JTextArea YearText=new JTextArea("2017");//查询中输入年的初始值 JTextArea MonthText=new JTextArea("4");//查询中输入月的初始值 static Border Border01 = BorderFactory.createLineBorder(Color.BLUE, 1); public Calendarshowing() { //frame.setResizable(false); showPanel = new JPanel(); frame.setBounds(400, 200, 500, 400);//窗体所在位置、大小 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container content = frame.getContentPane(); final JPanel buttonPanel = new JPanel(); buttonPanel.setLayout(new FlowLayout()); Cbutton.addActionListener(new PressButton()); Prebutton.addActionListener(new PressButton()); Nextbutton.addActionListener(new PressButton()); buttonPanel.add(Prebutton); buttonPanel.add(Nextbutton); buttonPanel.add(YearText); buttonPanel.add(YearLabel); buttonPanel.add(MonthText); buttonPanel.add(MonthLabel); buttonPanel.add(Cbutton); content.add(buttonPanel, BorderLayout.NORTH); final GridLayout gridLayout = new GridLayout(0, 7); gridLayout.setHgap(10); gridLayout.setVgap(10); showPanel.setLayout(gridLayout); showLabel.setHorizontalAlignment(JLabel.CENTER); showLabel.setText("<html><Font size = '6',color = 'RED'>"+"日历: "+"<html><Font size='4',color='Green'>"+year+"年"+month+"月"+"</Font></html>"); showLabel.setToolTipText("今天是公元"+c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DATE)+"日"); content.add(showLabel,BorderLayout.SOUTH); content.add(showPanel, BorderLayout.CENTER); frame.setVisible(true); } public class PressButton implements ActionListener { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub JButton button = (JButton)e.getSource(); if (button == Prebutton) { month--; if (month <= 0){ year--; month+=12; } } else{ if(button == Nextbutton){ month++; if (month > 12){ year++; month-=12; } } else{ // System.out.println(Double.valueOf(CText.getText())); // System.out.println(c.get(Calendar.YEAR)); while(Double.valueOf(YearText.getText())*12+Double.valueOf(MonthText.getText())<year*12+month){ month--; if (month <= 0){ year--; month+=12; } } while(Double.valueOf(YearText.getText())*12+Double.valueOf(MonthText.getText())>year*12+month){ month++; if (month >12){ year++; month-=12; } } } } showPanel.removeAll(); showPanel.updateUI(); new showing(); showLabel.setHorizontalAlignment(JLabel.CENTER); showLabel.setText("<html><Font size = '6',color = 'RED'>"+"日历: "+"<html><Font size='4',color='Green'>"+year+"年"+month+"月"+"</Font></html>"); showLabel.setToolTipText("今天是公元"+c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"+c.get(Calendar.DATE)+"日"); } } static class showing{ public boolean isLeapYear(int year1) // 判断该年是否为闰年 { return ((year1 % 4 == 0 && year1 % 100 != 0) || (year1 % 400 == 0)); } public int firstDay() // 用来计算并判断该年第一天是星期几 { long n = year * 365; for (int i = 1; i < year; i++){ if (isLeapYear(i)){ n++; } } return (int)n%7; } public void printWeek() // 设置图形界面的表头 { for (int i = 0; i < 7; i++) { dayLabel[i] = new JLabel(weekdaystr[i],JLabel.CENTER); dayLabel[i].setBackground(Color.BLACK); dayLabel[i].setForeground(Color.RED); showPanel.add(dayLabel[i]); } } public int getMonthDay(int m) // 获取每个月的天数 { switch (m) { //月份为1、3、5、7、8、10、12,天数为31; case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31; //月份为4、6、9、11,天数为30; case 4: case 6: case 9: case 11: return 30; //闰年2月份,天数为29,非闰年,天数为28 case 2: if (isLeapYear(year)) return 29; else return 28; default: return 0; } } public int getDays(){ monthday = 0; for (int i = 1;i<month;i++) monthday+=getMonthDay(i); return (firstDay()+(monthday%7))%7; } public showing(){ int n =1 ; printWeek(); int k = getDays(); int Year = c.get(Calendar.YEAR); int Month = c.get(Calendar.MONTH); Month += 1; int Date = c.get(Calendar.DATE); for (int j = 7;n<=getMonthDay(month);j++){ if (j < k+7){ dayLabel[j] = new JLabel(); showPanel.add(dayLabel[j]); } else{ dayLabel[j] = new JLabel(""+n,JLabel.CENTER); dayLabel[j].setToolTipText("星期"+weekdaystr[(j)%7]); if (Year == year&&Month==month&&Date == n){ dayLabel[j].setText("<html><Font size = '6',color = 'BLUE'>"+n+"</Font></html>"); dayLabel[(Date-1)%7].setForeground(Color.BLUE); } showPanel.add(dayLabel[j]); n++; } } showPanel.setBorder(Border01); } } public static void main(String[] args) { Calendarshowing c = new Calendarshowing(); showing s = new Calendarshowing.showing(); } } ```

我想要的结果是在GUI界面的第一行第二列的JLable添加字符串,控制台输出正常,但是就是添加不到JLable里!!怎么回事啊?

package 发牌; import java.awt.Color; import java.awt.GridLayout; import java.util.Random; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; public class Program extends Thread{ private JFrame jf; public JLabel jl[] = new JLabel[10]; public String num[] = new String[53]; public Program(){ for(int i=1; i<=52; i++){ num[i] = i + ""; } jf = new JFrame("发牌器"); jf.setSize(500, 400); jf.setLocation(100, 100); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.setLayout(new GridLayout(3, 3)); for(int i=1; i<=9; i++){ if(i%2!=0){ jl[i] = new JLabel(); jl[i].setBackground(new Color(106, 106, 106)); jl[i].setOpaque(true); jf.add(jl[i]); } else { jl[i] = new JLabel(); jl[i].setBackground(new Color(140, 140, 115)); jl[i].setOpaque(true); jf.add(jl[i]); } } jf.setVisible(true); } public static void main(String[] args) { Program pr = new Program(); CardBuffer cd = new CardBuffer(); PutCard pt = new PutCard(pr, cd); GetCard gc = new GetCard(pr, cd); pt.start(); gc.start(); } } class CardBuffer{ private String card; public synchronized void put(String card){ this.card = card; } public synchronized String get(){ return card; } } class PutCard extends Thread { private Program pr = new Program(); private CardBuffer cd = new CardBuffer(); public static boolean empty = true; Random cardNum = new Random(); public PutCard(Program pr, CardBuffer cd){ this.pr = pr; this.cd = cd; } public void run(){ synchronized (cd) { for(int i=0; i<52; i++){ while(!empty){ try{ cd.wait(); }catch(InterruptedException e){ e.printStackTrace(); } } try{ sleep(3000); }catch(InterruptedException e){ e.printStackTrace(); } int index = (int)(Math.random()*pr.num.length); String str = pr.num[index]; cd.put(str); System.out.print(str+" "); empty = false; cd.notify(); } } } } class GetCard extends Thread{ private String str = ""; private int n = 2; Program pr = new Program(); CardBuffer cd = new CardBuffer(); public GetCard(Program pr, CardBuffer cd){ this.pr = pr; this.cd = cd; } public void run(){ synchronized (cd) { for(int i=0; i<52; i++){ while(PutCard.empty){ try{ cd.wait(); }catch(InterruptedException e){ e.printStackTrace(); } } try{ sleep(3000); }catch(InterruptedException e){ e.printStackTrace(); } str += cd.get(); System.out.print(str+" "); pr.jl[n].setText(str); PutCard.empty = true; cd.notify(); } } } }

java 中用户名密码验证的代码怎么写?急!!在线等

import java.awt.GridLayout; import java.awt.event.*; import javax.swing.*; import com.sdu.wh.bll.UserQueryBll; import com.sdu.wh.dao.*; import com.sdu.wh.sql.*; public class LoginFrame extends JDialog implements ActionListener { private JTextField textName = new JTextField(); private JPasswordField textPW = new JPasswordField(); private JButton btnOK = new JButton("登录"); private JButton btnCancel = new JButton("取消"); //构造方法,参数1:宿主窗口, 参数2:是否模态窗口 public LoginFrame(JFrame jf, boolean model) { //调用父类 JDialog 的构造方法 super(jf, model); this.setTitle("学生选课管理系统登录"); this.setSize(300, 180); this.setLocation(500, 400); getContentPane().setLayout(new GridLayout(3,2,10,10)); getContentPane().add(new JLabel("用户名:")); getContentPane().add(textName); getContentPane().add(new JLabel("密码:")); getContentPane().add(textPW); getContentPane().add(btnOK); btnOK.addActionListener(this); getContentPane().add(btnCancel); btnCancel.addActionListener(this); this.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); this.setVisible(true); } public void actionPerformed(ActionEvent e) { if(e.getActionCommand()== "登录") { //登录密码的验证方法 //通过用户名到数据库中查到该用户名的密码 //与输入的密码比较 String uid=textName.getText(); String password=new String(textPW.getPassword()); String t=null; String sql="select 用户名,密码,角色,学院 from users where 用户名="+uid; SqlExecute excute=new SqlExecute(); User user = null; try { //如果两个输入框都不空 if(!uid.equals("")){ user = excute.getUser(sql); } } catch (Exception e1) { e1.printStackTrace(); } boolean isPass=!uid.equals("")&& uid.equals(user.getUid()) && !password.equals("") && password.equals(user.getPassword()); //如果通过验证 if(isPass) { //记录登录用户的id,学院,角色信息 StudentMainFrame.cUser.setUid(user.getUid()); StudentMainFrame.cUser.setDepart(user.getDepart()); StudentMainFrame.cUser.setType(user.getType()); //登录成功后销毁该登录窗口 this.dispose(); } else { //没有通过验证,弹出登陆错误提示信息 JOptionPane.showMessageDialog(this, "用户名或密码不正确!\r\n请重新填写。"); } } else //点取消按钮放弃登录,退出程序 System.exit(0); } }

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

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

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

Intellij IDEA 实用插件安利

1. 前言从2020 年 JVM 生态报告解读 可以看出Intellij IDEA 目前已经稳坐 Java IDE 头把交椅。而且统计得出付费用户已经超过了八成(国外统计)。IDEA 的...

搜狗输入法也在挑战国人的智商!

故事总是一个接着一个到来...上周写完《鲁大师已经彻底沦为一款垃圾流氓软件!》这篇文章之后,鲁大师的市场工作人员就找到了我,希望把这篇文章删除掉。经过一番沟通我先把这篇文章从公号中删除了...

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

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

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

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

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

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

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

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

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

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

魂迁光刻,梦绕芯片,中芯国际终获ASML大型光刻机

据羊城晚报报道,近日中芯国际从荷兰进口的一台大型光刻机,顺利通过深圳出口加工区场站两道闸口进入厂区,中芯国际发表公告称该光刻机并非此前盛传的EUV光刻机,主要用于企业复工复产后的生产线扩容。 我们知道EUV主要用于7nm及以下制程的芯片制造,光刻机作为集成电路制造中最关键的设备,对芯片制作工艺有着决定性的影响,被誉为“超精密制造技术皇冠上的明珠”,根据之前中芯国际的公报,目...

优雅的替换if-else语句

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

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

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

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

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

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

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

百度工程师,获利10万,判刑3年!

所有一夜暴富的方法都写在刑法中,但总有人心存侥幸。这些年互联网犯罪高发,一些工程师高技术犯罪更是引发关注。这两天,一个百度运维工程师的案例传遍朋友圈。1...

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

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

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中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组件有哪些,他们...

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

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

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

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

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

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

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

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

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

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

《Oracle Java SE编程自学与面试指南》最佳学习路线图2020年最新版(进大厂必备)

正确选择比瞎努力更重要!

字节跳动面试官竟然问了我JDBC?

轻松等回家通知

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

实时更新:计算机编程语言排行榜—TIOBE世界编程语言排行榜(2020年6月份最新版)

内容导航: 1、TIOBE排行榜 2、总榜(2020年6月份) 3、本月前三名 3.1、C 3.2、Java 3.3、Python 4、学习路线图 5、参考地址 1、TIOBE排行榜 TIOBE排行榜是根据全世界互联网上有经验的程序员、课程和第三方厂商的数量,并使用搜索引擎(如Google、Bing、Yahoo!)以及Wikipedia、Amazon、YouTube统计出排名数据。

立即提问
相关内容推荐