java swing 一个窗口打开新创口 加上go()程序就死掉了

import javax.swing.*;

import java.awt.Rectangle;
import java.awt.event.*;

public class Swing7 extends JFrame implements ActionListener {
JButton jb = new JButton();

public Swing7() {
    this.setTitle("Java——");
    jb.setText("确定");
    jb.setMnemonic('a');
    this.add(jb);
    this.setBounds(200, 300, 250, 300);
    this.setVisible(true);
    jb.addActionListener(this); //由于Swing7实现了ActionListener接口,所以给jb添加的ActionListener就是Swing7实例。
}

public void actionPerformed(ActionEvent e) {// 实现ActionListener接口的actionPerformed接口。

    yidengjiang frame=new yidengjiang();
    frame.setVisible(true);
}

public static void main(String args[]) {
    Swing7 s = new Swing7();
}

}

import java.awt.*;
import java.awt.event.*;
import java.util.Random;

import javax.swing.*;

public class yidengjiang extends JFrame implements ActionListener {

/**
 * 
 */
private static final long serialVersionUID = -8560277451929244119L;
JTextField tf = new JTextField();
JButton b1 = new JButton("开始");
JButton b2 = new JButton("停止");
boolean isGo = false;
String path = "223.jpg";
ImageIcon background = new ImageIcon(path);
JTextArea jiang1= new JTextArea();
int choujiangcishu=1;

public yidengjiang() {
    this.getContentPane().setLayout(null);
    Dimension srcDim = Toolkit.getDefaultToolkit().getScreenSize();  
    System.out.println(srcDim.width+"   "+srcDim.height);
    this.setExtendedState(JFrame.MAXIMIZED_BOTH);
    this.getContentPane().add(tf);

    this.getContentPane().add(b1);

    ImageIcon background = new ImageIcon(path);// 背景图片
    JLabel jlbg = new JLabel(background);// 把背景图片显示在一个标签里面
    jlbg.setBounds(0, 0, srcDim.width, srcDim.height);// 把标签的大小位置设置为图片刚好填充整个面板
    JPanel imagePanel = (JPanel) this.getContentPane();
    imagePanel.setOpaque(false);
    this.getLayeredPane().add(jlbg, new Integer(Integer.MIN_VALUE));

    tf.setFont(new Font("Courier", Font.PLAIN, 110));
    tf.setHorizontalAlignment(JLabel.CENTER);
    tf.setOpaque(false);
    //tf.setBackground(Color.red);// 按钮红色背景
    tf.setEditable(false);//不可编辑
    tf.setBorder(BorderFactory.createEmptyBorder());//无边框
    tf.setBounds(srcDim.width/2-srcDim.width/3/2, srcDim.height/2+srcDim.height/10/2, srcDim.width/3, srcDim.height/10);

    b1.setBounds(0,0,0,0);
    b2.setBounds(0,0,0,0);

    jiang1.setBounds(srcDim.width/30, srcDim.height/20,800,800);
    jiang1.setOpaque(false);

    jiang1.setFont(new Font("Courier",Font.PLAIN,22));
    jiang1.setEditable(false);


    this.getContentPane().add(tf);
    this.getContentPane().add(b1);
    this.getContentPane().add(b2);
    this.getContentPane().add(jiang1);


    b1.setActionCommand("start");
    b1.addActionListener(this);
    b2.addActionListener(this);

    SymListener sy = new SymListener();
    b1.registerKeyboardAction(sy,KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0), JComponent.WHEN_IN_FOCUSED_WINDOW); 
    b2.registerKeyboardAction(sy,KeyStroke.getKeyStroke(KeyEvent.VK_SPACE, 0), JComponent.WHEN_IN_FOCUSED_WINDOW); 

    //jButton.setMnemonic(KeyEvent.VK_ENTER);
    b2.setEnabled(false);

    super.setUndecorated(true);// 无标题栏
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


    this.setLocation(0, 0);
    Cursor cu = new Cursor(Cursor.HAND_CURSOR);
    this.setCursor(cu);
    this.setVisible(true);
    tf.setText("888888");
    go();

}    

public void go() {
    while (true) {
        if (isGo == true) {
            String s = "";
            Random rand = new Random();
            for (int j = 1; j <= 1; j++) {
                int i = (int) (Math.random()*260000+1);//设定奖项总数
                if (i < 10) {
                    s = s + "00000" + i;
                } else if(i<100 & i>=10) 
                {
                    s = s + "0000" + i;
                }else if(i<1000 & i>=100) 
                {
                    s = s + "000" + i;
                }else if(i<10000 & i>=1000) 
                {
                    s = s + "00" + i;
                }else if(i<100000 & i>=10000) 
                {
                    s = s + "0" + i;
                }else
                {
                    s = s +  i;
                }

            }
            tf.setText(s);

        }

        try {
            Thread.sleep(10);
        } catch (java.lang.InterruptedException e) {
            e.printStackTrace();
        }

    }


}

public void actionPerformed(ActionEvent e) {

    String s = e.getActionCommand();

    if (s.equals("start")) {
        isGo = true;
        b1.setEnabled(false);
        b2.setEnabled(true);
    } else {
        isGo = false;
        jiang1.setText(jiang1.getText()+"\n"+tf.getText());

        b2.setEnabled(false);
        b1.setEnabled(true);
    }

}

/*public static void main(String[] args)  {
    Dimension srcDim = Toolkit.getDefaultToolkit().getScreenSize(); 
    ImgUtil image =new ImgUtil();
    image.createThumb("3.png", "223.jpg",(int)srcDim.getWidth(), (int)srcDim.getHeight());
    new yidengjiang();

} */   
class SymListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
    Object obj = e.getSource();
    if (obj == b1) {

            isGo = true;
            b1.setEnabled(false);
            b2.setEnabled(true);
    } else if (obj == b2) {

        isGo = false;

        operdata aaa =new operdata();
        String bb= aaa.getuserdata(tf.getText());

        jiang1.setText(jiang1.getText()+"\n"+""+(choujiangcishu++)+":  "+tf.getText()+bb);

        b2.setEnabled(false);
        b1.setEnabled(true);

    }
    }
    }

}

3个回答

SWING是单线程的,需要将循环放到单独的线程中执行。修改成这个:

new Thread(){
            public void run() {go();};
        }.start();
summer820228
summer820228 谢谢!!
4 年多之前 回复

new Thread(){

                public void run() {go();};

        }.start();

你的go方法中的while不是死循环吗

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
java Swing程序如何打包成一个可执行程序
写了一个Java Swing小程序 如何打包成可执行程序呀?里面有图片和数据库
Java swing选项卡中有表格,表格中有按钮,按钮按不到
![成果图](https://oscimg.oschina.net/oscnet/up-f1f985da2b44ac32a58a6e778c7c15e22a1.JPEG) ``` package com.java.gui; import javax.swing.*; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.KeyEvent; import java.awt.image.ImageConsumer; import java.net.URL; public class JTabbedPaneDemo extends JPanel { private JTabbedPane jTabbedPane = new JTabbedPane(); private String[] tabNames = {"选项卡1", "选项卡2", "表格"}; private ImageIcon icon = createImageIcon("middle.png"); public JTabbedPaneDemo() { layoutComponents(); } private void layoutComponents() { int i = 0; JPanel jpanelFirst = new JPanel(); jTabbedPane.addTab(tabNames[i++], icon, jpanelFirst, "fitst"); jTabbedPane.setMnemonicAt(0, KeyEvent.VK_0); JLabel jLabel1 = new JLabel("选项卡1:"); jpanelFirst.add(jLabel1); JTextField jTextField1 = new JTextField(20); jTextField1.setText("测试选项卡1"); jpanelFirst.add(jTextField1); JButton jButton1 = new JButton("提交"); jButton1.addActionListener((ActionEvent e) -> { JFrame jFrame = new JFrame(); JLabel jLabel = new JLabel(); jLabel.setIcon(icon); jFrame.add(jLabel); JOptionPane.showMessageDialog(jFrame, "提交成功!!!", "选项卡1提交", JOptionPane.INFORMATION_MESSAGE); }); jpanelFirst.add(jButton1); JPanel jpanelSecond = new JPanel(); // 加入第2个页面 jTabbedPane.addTab(tabNames[i++], icon, jpanelSecond, "second"); // 设置快捷键为1 jTabbedPane.setMnemonicAt(1, KeyEvent.VK_1); JLabel jLabel2 = new JLabel("选项卡2:"); jpanelSecond.add(jLabel2); JTextField jTextField2 = new JTextField(20); jTextField2.setText("测试选项卡2"); jpanelSecond.add(jTextField2); JButton jButton2 = new JButton("提交"); jButton2.addActionListener((ActionEvent e) -> { JOptionPane.showMessageDialog(null, "提交成功!!!", "选项卡2提交", JOptionPane.INFORMATION_MESSAGE); }); jpanelSecond.add(jButton2); JPanel jpanel3 = new JPanel(); jTabbedPane.addTab(tabNames[i++], icon, jpanel3, "第三个"); jTabbedPane.setMnemonicAt(2, KeyEvent.VK_2); String[] columsNames = {"序号", "姓名", "语文", "数学", "英语", "总分", "操作"}; Object[][] rowData = { {1, "张三", 80, 80, 80, 240, null}, {2, "John", 70, 80, 90, 240, null}, {3, "Sue", 70, 70, 70, 210, null}, {4, "Jane", 80, 70, 60, 210, null}, {5, "Joe_05", 80, 70, 60, 210, null}, {6, "Joe_06", 80, 70, 60, 210, null}, {7, "Joe_07", 80, 70, 60, 210, null}, {8, "Joe_08", 80, 70, 60, 210, null}, {9, "Joe_09", 80, 70, 60, 210, null}, {10, "Joe_10", 80, 70, 60, 210, null}, {11, "Joe_11", 80, 70, 60, 210, null}, {12, "Joe_12", 80, 70, 60, 210, null}, {13, "Joe_13", 80, 70, 60, 210, null}, {14, "Joe_14", 80, 70, 60, 210, null}, {15, "Joe_15", 80, 70, 60, 210, null}, {16, "Joe_16", 80, 70, 60, 210, null}, {17, "Joe_17", 80, 70, 60, 210, null}, {18, "Joe_18", 80, 70, 60, 210, null}, {19, "Joe_19", 80, 70, 60, 210, null}, {20, "Joe_20", 80, 70, 60, 210, null} }; JTable table = new JTable(rowData, columsNames); // 设置表格内容颜色 table.setForeground(Color.BLACK); // 字体颜色 table.setFont(new Font(null, Font.PLAIN, 14)); // 字体样式 table.setSelectionForeground(Color.DARK_GRAY); // 选中后字体颜色 table.setSelectionBackground(Color.LIGHT_GRAY); // 选中后字体背景 table.setGridColor(Color.GRAY); // 设置行高 table.setRowHeight(30); // 第一列列宽设置为40 table.getColumnModel().getColumn(0).setPreferredWidth(40); // 设置滚动面板视口大小(超过该大小的行数据,需要拖动滚动条才能看到) table.setPreferredScrollableViewportSize(new Dimension(800, 300)); table.getColumnModel().getColumn(6).setCellRenderer(new MyButtonRender()); DefaultTableModel defaultTableModel = new DefaultTableModel(); defaultTableModel.addRow(new Object[]{3, "Sue", 70, 70, 70, 210, null}); JScrollPane jsp = new JScrollPane(table); jpanel3.add(jsp); setLayout(new GridLayout(1, 1)); add(jTabbedPane); } private ImageIcon createImageIcon(String path) { URL url = JTabbedPaneDemo.class.getResource(path); if (url == null) { System.out.println("the image " + path + " is not exist!"); return null; } return new ImageIcon(url); // return new ImageIcon("/Users/mt-mac/IdeaProjects/JavaGUI/src/main/java/com/java/gui/middle.png"); } public static void main(String[] args) { SwingUtilities.invokeLater(() -> { JFrame jFrame = new JFrame(); jFrame.setLayout(null); jFrame.setVisible(true); jFrame.setContentPane(new JTabbedPaneDemo()); jFrame.setSize(800, 800); }); } public class MyButtonRender implements TableCellRenderer { private JPanel jPanel; private JButton jButton; public MyButtonRender() { initButton(); initPanel(); jPanel.add(jButton); } private void initPanel() { jPanel = new JPanel(); jPanel.setLayout(null); } private void initButton() { jButton = new JButton(); jButton.setBounds(2, 3, 80, 30); jButton.addActionListener((ActionEvent e) -> { System.out.println("" + e.getActionCommand()); System.out.println(jButton.getText()); }); } @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { jButton.setText("编辑"); return jPanel; } } } ```
Java swing多线程实现聊天程序阻塞问题
1、在用swing写一个能够动态添加客户端的socket通信程序,即服务端用 一个异步线程持续监听新的客户端连接,如果有新的连接就新建一个客户端线 程来监听客户端,接收或者发送给客户端信息。 ```java //这是监听客户端连接的线程: new Thread(new Runnable() { @Override public void run() { // 异步线程持续监听端口连接 while (true){ if (server.isClosed()){ // 服务器一旦关闭,就跳出循环 break; } Socket temp = null; try { temp = server.accept(); JOptionPane.showMessageDialog(null,"连接建立成功,客户端端口号为:" +temp.getPort()); // 为每一个连接建立一个异步线程 Connection con = new Connection(temp); con.start(); connections.add(con); sockets.add(temp); } catch (IOException ex) { ex.printStackTrace(); } } } }).start(); ``` 这是客户端线程类: ```java class Connection extends Thread{ Socket socket; BufferedReader reader; PrintWriter writer; public Connection(Socket socket){ this.socket = socket; } @Override public void run() { System.out.println("来了!"); try { reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); writer = new PrintWriter(socket.getOutputStream()); // 第一次连接,先写出已经存在的联系人 writer.println("还没有联系人"); // 再读取新建联系人的名字 String clientName = reader.readLine(); System.out.println("客户端名字:" +clientName); reader.close(); } catch (IOException e) { e.printStackTrace(); } /* while (true){ try { if (socket.isConnected() == false){ break; } } catch (Exception e) { e.printStackTrace(); } }*/ } } ``` 这是客户端启动时执行的方法: ```java @Override public void windowOpened(WindowEvent e) { // 窗口打开就建立连接 try { socket = new Socket("localhost",3030); reader = new BufferedReader(new InputStreamReader(socket.getInputStream())); writer = new PrintWriter(socket.getOutputStream()); } catch (IOException ex) { JOptionPane.showMessageDialog(null,"服务器未开启,不能连接,请关闭此客户端!"); } /* 连接一旦建立需要立刻执行的事情 * 1、向服务器发送该客户端的名字 * 2、获取其他已经存在的客户端名字 * */ try { System.out.println(reader.readLine()); writer.println(clientName); } catch (IOException ex) { ex.printStackTrace(); } } ``` 每次一到这个windowOpen方法的System.out.println(reader.readLine());这里就卡死,没有报错,直接卡住。 看了网上说什么readline()会因为没读到数据阻塞,所以猜想是服务端发送数据时一直没有发出来,不过没有找到解决办法,这是卡住时的情况截图 ![图片说明](https://img-ask.csdn.net/upload/201911/08/1573184051_750205.png)
Java中用Socket和多线程制作聊天窗口中遇到的问题
最近在学习Socket网络连接,在制作聊天服务器时采用了多线程的方式。下面是代码: 服务器 ``` package socketConnect; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; import java.util.ArrayList; import java.util.Iterator; public class SimpleChatServer { ArrayList<PrintWriter> clientOutputStreams; public class ClientHandler implements Runnable { BufferedReader reader; Socket sock; public ClientHandler(Socket clientSocket) { // TODO Auto-generated constructor stub sock = clientSocket; try { InputStreamReader isReader = new InputStreamReader(clientSocket.getInputStream()); reader = new BufferedReader(isReader); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } @Override public void run() { // TODO Auto-generated method stub String message; System.out.println("服务端线程在跑"); try { while ((message = reader.readLine()) != null) { System.out.println("Sread: " + message); tellEveryone(message); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public void go() { clientOutputStreams = new ArrayList<>(); try { ServerSocket serverSock = new ServerSocket(8080); while (true) { Socket clientSocket = serverSock.accept(); PrintWriter writer = new PrintWriter(clientSocket.getOutputStream()); clientOutputStreams.add(writer); Thread t = new Thread(new ClientHandler(clientSocket)); t.start(); System.out.println("got a connection"); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public void tellEveryone(String message) { Iterator<PrintWriter> it = clientOutputStreams.iterator(); while (it.hasNext()) { PrintWriter writer = (PrintWriter)it.next(); writer.println(message); writer.flush(); } } public static void main(String[] args) { new SimpleChatServer().go(); } } ``` 客户端 ``` package socketConnect; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; public class ClientA { JTextField outgoing; JTextArea incoming = new JTextArea(15, 50); PrintWriter pw; BufferedReader br; Socket socket; public void go() { JFrame frame = new JFrame("Chat Client"); JPanel panel = new JPanel(); incoming.setLineWrap(true); incoming.setWrapStyleWord(true); incoming.setEditable(false); JScrollPane scrollPane = new JScrollPane(incoming); scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); outgoing = new JTextField(20); JButton button = new JButton("Send"); button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub String text = getClass().getEnclosingClass().getSimpleName() + ": " + outgoing.getText(); try { pw.println(text); pw.flush(); } catch (Exception e2) { // TODO: handle exception } outgoing.setText(""); outgoing.requestFocus(); } }); panel.add(outgoing); panel.add(button); setUpNetWorking(); Thread readerThread = new Thread(new IncomingReader()); readerThread.start(); frame.getContentPane().add(BorderLayout.NORTH, scrollPane); frame.getContentPane().add(BorderLayout.CENTER, panel); frame.setSize(400, 500); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true);; } private void setUpNetWorking() { try { socket = new Socket("127.0.0.1", 8080); pw = new PrintWriter(socket.getOutputStream()); InputStreamReader isReader = new InputStreamReader(socket.getInputStream()); br = new BufferedReader(isReader); System.out.println("networking established"); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) { System.out.println("程序运行开始"); new ClientA().go(); } public class IncomingReader implements Runnable { @Override public void run() { // TODO Auto-generated method stub System.out.println("线程开始跑了"); String message; try { while ((message = br.readLine()) != null) { System.out.println("Aread: " + message); incoming.append(message + "\n"); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println("线程跑完了"); } } } ``` 以上是代码,运行不报错,可以正常实现聊天。 但是想知道一些细节的原理: 1. 先运行服务端,跑起来后控制台无输出。然后运行客户端,控制台首先会闪现一下以下的输出(是闪现的,特别快,所以我截不了图,手打的): 程序运行开始 networking established 线程开始跑了。 这应该是是客户端运行时的输出,然后是这样的输出: ![图片说明](https://img-ask.csdn.net/upload/202002/02/1580646630_513143.jpg) 所以当服务端建立接口之后等待客户端的请求,客户端请求该端口之后,是整个客户端程序运行了一遍,然后服务器的代码才会接着往下运行吗?但是如果整个客户端程序运行了一遍,为什么控制台不输出“线程跑完了”?还是说客户端监听服务器信息的那个线程一直在独立空间中运行着? 请大神帮我解答一下服务器和客户端运行时代码的运行过程以及客户端子线程为什么跑不完? 2. 当我向聊天框中输入信息时: ![图片说明](https://img-ask.csdn.net/upload/202002/02/1580647157_870751.jpg) 点击send,会出现以下结果: ![图片说明](https://img-ask.csdn.net/upload/202002/02/1580647257_332283.jpg) 所以为什么整个客户端又重新运行了一次????我只是点击了send触发了监听器监听的事件,事件中flush了输出流的内容,为啥整个客户端好像重新run了一次??另外,这个子线程是一直监听服务器的信息吗?服务器没有新的消息它也不结束,就一直等待吗? 请大神解答一下,我对多线程也是刚刚接触,而且有点强迫症,想搞清楚一切不理解的东西。。
Java swing中使用JFileChooer设置不开拖拽
Java实现截图功能,进行保存图片时,保存窗口在拖拽的时候桌面显示为异常如何设置JFileChooer窗口为固定窗口,不可拖拽
swing如何刷新界面数据
我想的是index不会变,就可以跟原来的界面一样使用,但是为什么会多了 ``` package recite; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.IOException; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTable; import java.util.List; public class fmabtn { public static List<String>list_Array; public static JFrame jframe=new JFrame("日语学习"); public static JPanel Win=new JPanel(); public static JLabel headlabel=new JLabel(); public static JLabel label=new JLabel(); public static JLabel firstlabel=new JLabel("日本语学习软件"); public static String sum1="",sum2="",sum3=""; protected static int index; protected static int n=0; public static setBtnColor begin=new setBtnColor("开始",0); public static setBtnColor last=new setBtnColor("上一个单词",1); public static setBtnColor next=new setBtnColor("下一个单词",1); public static setBtnColor restart=new setBtnColor(); private static String []field= {"日汉","日语","形态","中文"}; public static void main(String []args)throws IOException { Icon ret=new ImageIcon("loop.jpg"); ImageIcon java=new ImageIcon("java.jpg"); restart.setIcon(ret); firstlabel.setFont(new getAllFont().getSomeFont()); Win.setBackground(Color.LIGHT_GRAY); Win.add(begin); Win.add(firstlabel); jframe.add(Win); jframe.setFont(new getAllFont().getHeaderFont()); jframe.setResizable(false);//固定窗口大小 jframe.setVisible(true); jframe.setSize(400,300);//在显示之前加入panel组件 jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); list_Array=new listarray("n3单词").getArray(); for(String page:field) { sum2+=page+"<br>"; } headlabel.setText("<html>"+sum2+"</html>");sum2=""; begin.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { index=8; System.out.println("begin:"+index); Win.repaint(); Win.remove(begin); Win.remove(firstlabel); last.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { System.out.println("last:"+index); if(index>=8) {for(n=index-8;n<index-4;n++) { sum1+=list_Array.get(n)+"<br>";}} index-=4; if(index<3) {label.setText("开头没有更多了,点击下一个单词");} else{label.setText("<html>"+sum1+"</html>");sum1="";}}}); next.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.out.println("next:"+index); if(index+4<=list_Array.size()) {for(n=index;n<index+4;n++) { sum1+=list_Array.get(n)+"<br>";}} index+=4; if(index>list_Array.size()){label.setText("结尾没有更多了,点击上一个单词");} else if(index<=list_Array.size()) {label.setText("<html>"+sum1+"</html>");sum1="";}}}); restart.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { System.out.println("restart:"+index); {jframe.dispose(); jframe.setVisible(true); Win.repaint(); Win.removeAll(); Win.add(begin); Win.setVisible(true); jframe.add(Win); begin.setLocation(150,100); begin=begin; last=last; next=next; restart=restart; System.out.println("restart后的:"+index); }}}); {for(int i=4;i<8;i++) { sum2+=list_Array.get(i)+"<br>";}} label.setText("<html>"+sum2+"</html>");sum2=""; Win.setLayout(null); last.setBounds(-10, 200, 100,75); next.setBounds(300,200,100,75); label.setBounds(50,0,400,160); headlabel.setBounds(10,0,400,160); restart.setBounds(300,50,60,60); Win.add(label); Win.add(last); Win.add(next); Win.add(restart); Win.add(headlabel); jframe.setSize(400,300); jframe.setVisible(true); }}); }} ```
Java Swing小程序,哪里不对?
我先是用Java写了一个小程序: ![图片说明](https://img-ask.csdn.net/upload/201603/08/1457372555_37847.jpg) 运行以后得到了正确的结果,也就是输出123。但是把它改成Java Swing以后,奇怪的事情发生了:结果只能输出最后一位,也就是3。 这是Java Swing的代码片段。![图片说明](https://img-ask.csdn.net/upload/201603/08/1457372876_845104.jpg) 我想知道是什么地方出了问题;以及要怎样修改,才能得到正确的结果。谢谢大家。
swing子窗口关闭后父窗口刷新
swing子窗口关闭后父窗口刷新,swing子窗口关闭后父窗口刷新,swing子窗口关闭后父窗口刷新
java swing中如何为一个窗体添加背景图片
java swing中如何为一个窗体添加背景图片,java swing中如何为一个窗体添加背景图片
关于java swing鼠标单机事件的问题
关于java swing鼠标单机事件的问题关于java swing鼠标单机事件的问题关于java swing鼠标单机事件的问题关于java swing鼠标单机事件的问题关于java swing鼠标单机事件的问题关于java swing鼠标单机事件的问题
求教java swing的窗口问题
请用Java Swing GUI组件设计用户登录界面,当用户在文本框中输入内容, **然后按下“确定”按钮时,把文本框中的内容放在下面的文本区域中。** ![图片说明](https://img-ask.csdn.net/upload/201812/04/1543923657_653085.png)
java的图形界面设计中如何用swing对一个窗口的多个按钮设置不同的监视器??
java的图形界面设计中如何用swing对一个窗口的多个按钮设置不同的监视器??
Java的死循环里的代码不执行
死循环里的代码不执行,但是在死循环里加个输出就执行,并且线程也没有退出 ``` package shendi.utils; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; /** * -问题 代码原封不动运行,two函数里的死循环感觉像是挂了一样 但是线程没有结束 不执行 * -但是在循环内加个输出,函数就没有问题,Why? */ public class Test extends JFrame implements Runnable { private String type; private static int i = 0; public Test() { JButton button = new JButton("i+1"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { i++; System.out.println("two函数的死循环就是不会被执行 + i现在是:"+i); } }); this.add(button); this.setBounds(10, 10,100,100); this.setDefaultCloseOperation(EXIT_ON_CLOSE); this.setVisible(true); new Thread(new Test("1")).start(); new Thread(new Test("2")).start(); } public Test(String type) {this.type = type;} public static void main(String[] args) { new Test(); } private void one() { while (true) { // System.out.println(i); } } private void two() { System.out.println("two被调用了,线程 "); while (true) { if (1 == 2) break; // if (i == 0) System.out.println("i=0 two函数"); if (i > 1) System.out.println("我是活的"); } System.out.println("two挂了"); } public void run() { switch (type) { case "1": one(); break; case "2": two(); break; } } } ```
新登录的用户名怎么判断是否和已登录的用户名重名?
用户1、用户2、用户3、用户4依次登录,再登录用户2怎么判断是否重名 ![图片说明](https://img-ask.csdn.net/upload/202002/13/1581566962_929174.png) ![图片说明](https://img-ask.csdn.net/upload/202002/13/1581566977_484440.png) ``` package Pack; import java.awt.event.*; import java.io.*; import java.net.*; import java.text.*; import java.util.*; import javax.swing.*; import javax.swing.event.*; public class Test { private JFrame jf = null; private JTextField CastIPTxtFiled = new JTextField("228.9.6.8");// 组播IP地址文本框 private JTextField portTxtFiled = new JTextField("8000");// 端口地址文本框 private JTextField nameField = new JTextField("用户");// 用户名文本框 private JTextArea receiveMesArea = new JTextArea();// 接收消息文本域 private JTextArea sendMesArea = new JTextArea();// 发送消息文本域 private JButton startChatBtn = new JButton("开始聊天");// 按钮 private JButton stopChatBtn = new JButton("断开聊天"); private JButton quitBtn = new JButton("退出"); private JButton saveBtn = new JButton("保存"); private JButton cleaBtn = new JButton("清空"); private JButton sendBtn = new JButton("发送"); private JRadioButton groupchatBtn = new JRadioButton("群聊");// 单选按钮 private JRadioButton privatechatBtn = new JRadioButton("私聊"); private ButtonGroup btg = new ButtonGroup(); private JList<String> jlist = new JList<String>();// 列表框 private DefaultListModel<String> dlm = new DefaultListModel<String>();// 用dlm向jlist动态增删用户 private JScrollPane jScrollPane1 = new JScrollPane(receiveMesArea);// 滚动窗口 private JScrollPane jScrollPane2 = new JScrollPane(sendMesArea); private JScrollPane jScrollPane3 = new JScrollPane(jlist); private BroadCast broadCast = null; boolean broadCastIsDisable = true; boolean chitchat = true;// 判断是群聊还是私聊 public void InitFrame() { jf = new JFrame("组播聊天室"); jf.setLayout(null); jf.setSize(650, 530); jf.setLocationRelativeTo(null);// 在屏幕中居中显示 jf.setResizable(false);// 不可调整窗口大小 jf.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);// 标题栏关闭按钮失效 JLabel nameJLabel = new JLabel("用户名"); nameJLabel.setBounds(30, 80, 60, 20); jf.add(nameJLabel); nameField.setBounds(80, 80, 100, 20); jf.add(nameField); JLabel portTxtJLabel = new JLabel("端口地址"); portTxtJLabel.setBounds(300, 20, 60, 20); jf.add(portTxtJLabel); portTxtFiled.setBounds(360, 20, 100, 20); jf.add(portTxtFiled); JLabel CastIPTxtJLabel = new JLabel("组播IP地址"); CastIPTxtJLabel.setBounds(10, 20, 90, 20); jf.add(CastIPTxtJLabel); CastIPTxtFiled.setBounds(80, 20, 100, 20); jf.add(CastIPTxtFiled); startChatBtn.setBounds(220, 80, 100, 20); stopChatBtn.setBounds(360, 80, 100, 20); jf.add(startChatBtn); jf.add(stopChatBtn); JLabel receiveJLabel = new JLabel("接收消息"); receiveJLabel.setBounds(20, 140, 100, 20); jScrollPane1.setBounds(20, 160, 460, 130); jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); jf.add(jScrollPane1); jf.add(receiveJLabel); JLabel sendJLabel = new JLabel("发送消息"); sendJLabel.setBounds(20, 300, 100, 20); jScrollPane2.setBounds(20, 320, 460, 100); jScrollPane2.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); jf.add(jScrollPane2); jf.add(sendJLabel); jlist.setModel(dlm); jScrollPane3.setBorder(BorderFactory.createTitledBorder("在线用户列表")); jScrollPane3.setBounds(500, 20, 120, 430); jScrollPane3.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); jf.add(jScrollPane3); quitBtn.setBounds(20, 460, 100, 20); // 退出 jf.add(quitBtn); saveBtn.setBounds(140, 460, 100, 20); // 保存 jf.add(saveBtn); cleaBtn.setBounds(260, 460, 100, 20);// 清空 jf.add(cleaBtn); sendBtn.setBounds(380, 460, 100, 20); // 发送 jf.add(sendBtn); groupchatBtn.setBounds(120, 120, 100, 20); jf.add(groupchatBtn); privatechatBtn.setBounds(320, 120, 100, 20); jf.add(privatechatBtn); btg.add(groupchatBtn); btg.add(privatechatBtn); groupchatBtn.setSelected(true); jf.setVisible(true); // 显示窗口 BtnFalse(); Object1(); receiveMesArea.setEditable(false);// 接收消息文本域不能被编辑 sendBtn.setMnemonic(KeyEvent.VK_ENTER); // 给sendBtn设置快捷键(Alt+Enter) broadCast = new BroadCast(Integer.parseInt(portTxtFiled.getText()), CastIPTxtFiled.getText(), nameField.getText()); startChatBtn.addActionListener(new ButtonAction()); stopChatBtn.addActionListener(new ButtonAction()); groupchatBtn.addActionListener(new ButtonAction()); privatechatBtn.addActionListener(new ButtonAction()); quitBtn.addActionListener(new ButtonAction()); saveBtn.addActionListener(new ButtonAction()); cleaBtn.addActionListener(new ButtonAction()); sendBtn.addActionListener(new ButtonAction()); jlist.addListSelectionListener(new ListSelectionListener() { public void valueChanged(ListSelectionEvent e) { Object2(); } }); } public class ButtonAction implements ActionListener { public void actionPerformed(ActionEvent e) { if (e.getSource().equals(startChatBtn)) { jf.setTitle("当前用户:" + nameField.getText()); startChatBtn.setEnabled(false); BtnTrue(); Object2(); broadCastIsDisable = false; StartChat(); } else if (e.getSource().equals(stopChatBtn)) { jf.setTitle("组播聊天室"); startChatBtn.setEnabled(true); BtnFalse(); Object1(); broadCastIsDisable = true; broadCast.StopChat(); // 用户下线 } else if (e.getSource().equals(groupchatBtn)) { chitchat = true; Object2(); } else if (e.getSource().equals(privatechatBtn)) { chitchat = false; Object2(); } else if (e.getSource().equals(quitBtn)) { if (broadCastIsDisable == false) { broadCast.StopChat(); } System.exit(0); } else if (e.getSource().equals(saveBtn)) { try { SaveScreen(); Object2(); } catch (IOException e1) { e1.printStackTrace(); } } else if (e.getSource().equals(cleaBtn)) { ClearScreen(); Object2(); } else if (e.getSource().equals(sendBtn)) { if (sendMesArea.getText().equals("")) { JOptionPane.showMessageDialog(jf, "请输入需要发送的消息", "提示!!!", JOptionPane.ERROR_MESSAGE); } else { SendMessage(); sendMesArea.setText(null);// 按发送按钮,立即将发送消息文本域内容清空 } Object2(); } } } public void Object1() { nameField.requestFocusInWindow();// 将nameField设置为焦点 nameField.selectAll(); startChatBtn.getRootPane().setDefaultButton(startChatBtn);// 将startChatBtn设置为焦点,按回车相当于鼠标单击 } public void Object2() { sendMesArea.requestFocusInWindow(); } public void BtnTrue() {// 按钮可点击 stopChatBtn.setEnabled(true); sendBtn.setEnabled(true); groupchatBtn.setEnabled(true); privatechatBtn.setEnabled(true); } public void BtnFalse() {// 按钮不可点击 stopChatBtn.setEnabled(false); sendBtn.setEnabled(false); groupchatBtn.setEnabled(false); privatechatBtn.setEnabled(false); } public void StartChat() { // 用户上线开始聊天 String port = portTxtFiled.getText(); String castIp = portTxtFiled.getText(); if (!castIp.equals("") && !port.equals("")) { broadCast = new BroadCast(Integer.parseInt(portTxtFiled.getText()), CastIPTxtFiled.getText(), nameField.getText()); broadCast.start(); // 启动线程 } } public void SendMessage() { if (chitchat == true) { broadCast.SendMessage(sendMesArea.getText().toString()); } else { broadCast.SendMessage("@" + jlist.getSelectedValue() + "#" + sendMesArea.getText().toString()); } } public void SaveScreen() throws IOException { broadCast.SaveScreen(); } public void ClearScreen() { broadCast.ClearScreen(); } public static void main(String[] args) { Test client = new Test(); client.InitFrame(); } public class BroadCast extends Thread { public int port = 0; // 端口地址 String Ip = ""; // 组播IP地址 String name = ""; // 用户名 MulticastSocket multicastSocket = null; boolean StopThread = false; static final char FLAG_CHAT = '#'; static final char FLAG_PM_USER = '@'; static final char FLAG_PM_TEXT = '#'; static final char FLAG_ONLINE = '$'; static final char FLAG_OFFLINE = '&'; static final char FLAG_REQ_ONLINE = '*'; static final char FLAG_ALREADY_ONLINE = '+'; public BroadCast(int port, String Ip, String name) { this.port = port; this.Ip = Ip; this.name = name; } public void SocketSend(String data) // 发送组播消息 { try { byte[] buf = data.getBytes(); DatagramPacket datagramPacket1 = new DatagramPacket(buf, buf.length); InetAddress address = InetAddress.getByName(Ip); datagramPacket1.setAddress(address); datagramPacket1.setPort(port); multicastSocket.send(datagramPacket1); } catch (IOException e) { e.printStackTrace(); } } public void SendMessage(String message) // 发送组播消息 { SocketSend(FLAG_CHAT + this.name + ":" + message); // '#' + this.name + ":" + message } public void SendUserOnline() // 发送用户上线消息 { SocketSend(FLAG_ONLINE + this.name); // '$' + this.name } public void SendUserOffline() // 发送用户下线消息 { SocketSend(FLAG_OFFLINE + this.name); // '&' + this.name } public void ReqOnlineUser() // 请求在线用户 { SocketSend(String.valueOf(FLAG_REQ_ONLINE)); // '*' 请求在线用户 } public void SendAlreadyOnline() // 当前在线用户 { SocketSend(FLAG_ALREADY_ONLINE + this.name); // '+' + this.name } public void StopChat() { SendUserOffline(); // 发送用户下线消息 StopThread = true; // 用户下线 while (StopThread == true) { dlm.removeAllElements(); } } public void PrintMessageWT(String message) // 带时间的消息 { receiveMesArea.append("[" + GetSystemTime() + "] "); receiveMesArea.append(message); receiveMesArea.append("\n"); receiveMesArea.setCaretPosition(receiveMesArea.getText().length()); } public void SaveScreen() throws IOException { // 保存聊天记录 String msg = receiveMesArea.getText(); FileOutputStream Note = new FileOutputStream(this.name + "的聊天记录.txt"); PrintMessageWT("聊天记录保存地址:" + System.getProperty("user.dir") + "\\" + this.name + "的聊天记录.txt"); Note.write(msg.getBytes()); Note.close(); } public void ClearScreen() { receiveMesArea.setText(""); // 清空接收消息文本域内容 } public String GetSystemTime() { SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss"); // 获取当前时间(格式yyyy-MM-dd HH:mm:ss) return sdf.format(new Date()); // 返回当前时间 } public void run() { // 启动线程 try { InetAddress address = InetAddress.getByName(Ip); multicastSocket = new MulticastSocket(this.port); multicastSocket.joinGroup(address); SendUserOnline(); // 发送用户上线消息 ReqOnlineUser(); // 请求在线用户 while (!StopThread) { byte[] buf = new byte[1024]; DatagramPacket datagramPacket = new DatagramPacket(buf, buf.length); if (multicastSocket.isClosed() == false) { multicastSocket.receive(datagramPacket); String string_MS = new String(datagramPacket.getData(), 0, datagramPacket.getLength()); switch (string_MS.charAt(0)) { case (FLAG_ONLINE): // '$' string_MS = string_MS.substring(1, string_MS.length()); // 去掉第一个字符,获取用户名 // dlm.addElement(string_MS); PrintMessageWT("系统提示:" + string_MS + " 上线!"); break; case (FLAG_OFFLINE): // '&' string_MS = string_MS.substring(1, string_MS.length()); dlm.removeElement(string_MS); PrintMessageWT("系统提示:" + string_MS + " 下线!"); break; case (FLAG_REQ_ONLINE): // '*' SendAlreadyOnline(); break; case (FLAG_ALREADY_ONLINE): // '+' string_MS = string_MS.substring(1, string_MS.length()); boolean notfound = true; for (int i = 0; i < dlm.size(); i++) { if (dlm.get(i).equals(string_MS)) { notfound = false; break; } } if (notfound == true) { if (nameField.getText().equals(string_MS)) { JOptionPane.showMessageDialog(jf, "欢迎加入组播聊天室!!!", "提示!!!", JOptionPane.INFORMATION_MESSAGE); } dlm.addElement(string_MS); // receiveMesArea.append("新加入用户:" + string_MS + "\n"); // receiveMesArea.append("目前总人數:" + String.valueOf(dlm.size()) + "\n"); } } int max = dlm.size(), min = 0; int ran = (int) (Math.random() * (max - min) + min); jlist.setSelectedIndex(ran); boolean IsPM1 = false, IsPM2 = false;// 判断是否为私聊,默认不是 int num1 = 0, num2 = 0; if (string_MS.charAt(0) == FLAG_CHAT) {// '#' 判断第一个字符是否相等 string_MS = string_MS.substring(1, string_MS.length());// 去掉第一个字符 for (int i = 0; i < string_MS.length(); i++) {// 私聊,判断@和#在哪个位置,获取姓名 if (string_MS.charAt(i) == FLAG_PM_USER) { // '@' num1 = i + 1; IsPM1 = true;// 是私聊 } if (string_MS.charAt(i) == FLAG_PM_TEXT) { // '#' num2 = i; } } String Chat_UserName = string_MS.substring(num1, num2++);// 获取私聊对象的姓名 if (IsPM1 == true) {// 是私聊 String PM_SenderName = string_MS.substring(0, num1 - 2);// 获取私聊对象的姓名 if (this.name.equals(Chat_UserName)) {// 是和我私聊 PrintMessageWT("私聊消息--> " + PM_SenderName + "@我:" + string_MS.substring(num2, string_MS.length())); } else if (this.name.equals(PM_SenderName)) {// 自己发私聊消息 PrintMessageWT("私聊消息--> " + "我@" + Chat_UserName + ":" + string_MS.substring(num2, string_MS.length())); } else {// 不是和我私聊 IsPM2 = true; } } if (IsPM1 == false && IsPM2 == false) { // 不是私聊 PrintMessageWT(string_MS); } } } } } catch (Exception e) { e.printStackTrace(); } try { multicastSocket.close(); } catch (Exception e) { e.printStackTrace(); } StopThread = false; } } } ```
debian10.2安装phpstorm2019.3.1时出现了问题,求大佬解答
debian 10.2 phpstorm 2019.3.1 在设置完环境变量后,运行phpstorm与直接进入文件目录执行./phpstorm.sh出现的都是这个问题,求各位大佬给个解决方法,万分感谢 另外我实在是莫得币子了,知识无价,学海无涯,有任何解决办法我都会去尝试,谢谢大家了 OpenJDK 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release. No protocol specified 2020-01-19 23:59:09,363 [ 2351] WARN - #com.intellij.idea.Main - java.awt.AWTError: Can't connect to X11 window server using ':0' as the value of the DISPLAY variable. java.util.concurrent.ExecutionException: java.awt.AWTError: Can't connect to X11 window server using ':0' as the value of the DISPLAY variable. at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395) at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1999) at com.intellij.idea.StartupUtil.runInEdtAndWait(StartupUtil.java:678) at com.intellij.idea.StartupUtil.lambda$showUserAgreementAndConsentsIfNeeded$15(StartupUtil.java:673) at com.intellij.ui.AppUIUtil.showConsentsAgreementIfNeeded(AppUIUtil.java:332) at com.intellij.idea.StartupUtil.showUserAgreementAndConsentsIfNeeded(StartupUtil.java:673) at com.intellij.idea.StartupUtil.startApp(StartupUtil.java:231) at com.intellij.idea.StartupUtil.prepareApp(StartupUtil.java:213) at com.intellij.ide.plugins.MainRunner.lambda$start$0(MainRunner.java:39) at java.base/java.lang.Thread.run(Thread.java:834) Caused by: java.awt.AWTError: Can't connect to X11 window server using ':0' as the value of the DISPLAY variable. at java.desktop/sun.awt.X11GraphicsEnvironment.initDisplay(Native Method) at java.desktop/sun.awt.X11GraphicsEnvironment$1.run(X11GraphicsEnvironment.java:102) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.desktop/sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:61) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:315) at java.desktop/java.awt.GraphicsEnvironment$LocalGE.createGE(GraphicsEnvironment.java:101) at java.desktop/java.awt.GraphicsEnvironment$LocalGE.<clinit>(GraphicsEnvironment.java:83) at java.desktop/java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:129) at java.desktop/sun.awt.X11.XToolkit.<clinit>(XToolkit.java:232) at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:315) at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:588) at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:583) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.desktop/java.awt.Toolkit.getDefaultToolkit(Toolkit.java:582) at java.desktop/java.awt.Toolkit.getEventQueue(Toolkit.java:1499) at java.desktop/java.awt.EventQueue.invokeLater(EventQueue.java:1318) at com.intellij.idea.StartupUtil.lambda$scheduleInitUi$9(StartupUtil.java:265) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ... 1 more 2020-01-19 23:59:10,475 [ 3463] ERROR - tellij.diagnostic.LoadingState - Should be called at least in the state LAF_INITIALIZED, the current state is: BOOTSTRAP Current violators count: 1 java.lang.Throwable at com.intellij.diagnostic.LoadingState.logStateError(LoadingState.java:55) at com.intellij.diagnostic.LoadingState.checkOccurred(LoadingState.java:51) at com.intellij.util.ui.UIUtil.<clinit>(UIUtil.java:83) at com.intellij.ide.a.c.a.a(a.java:182) at com.intellij.ide.a.d.n.a(n.java:544) at com.intellij.ide.a.d.n.c(n.java:222) at com.intellij.ide.a.d.n.a(n.java:117) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at com.intellij.idea.MainImpl.start(MainImpl.java:94) at com.intellij.idea.StartupUtil.lambda$startApp$5(StartupUtil.java:246) at com.intellij.util.ui.EdtInvocationManager.executeWithCustomManager(EdtInvocationManager.java:73) at com.intellij.idea.StartupUtil.startApp(StartupUtil.java:241) at com.intellij.idea.StartupUtil.prepareApp(StartupUtil.java:213) at com.intellij.ide.plugins.MainRunner.lambda$start$0(MainRunner.java:39) at java.base/java.lang.Thread.run(Thread.java:834) 2020-01-19 23:59:10,475 [ 3463] ERROR - tellij.diagnostic.LoadingState - PhpStorm 2019.3.1 Build #PS-193.5662.63 2020-01-19 23:59:10,476 [ 3464] ERROR - tellij.diagnostic.LoadingState - JDK: 11.0.5; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o 2020-01-19 23:59:10,476 [ 3464] ERROR - tellij.diagnostic.LoadingState - OS: Linux 2020-01-19 23:59:10,485 [ 3473] ERROR - tellij.diagnostic.LoadingState - Should be called at least in the state LAF_INITIALIZED, the current state is: BOOTSTRAP Current violators count: 2 java.lang.Throwable at com.intellij.diagnostic.LoadingState.logStateError(LoadingState.java:55) at com.intellij.diagnostic.LoadingState.checkOccurred(LoadingState.java:51) at com.intellij.openapi.util.registry.Registry.is(Registry.java:52) at com.intellij.util.ui.UIUtil.<clinit>(UIUtil.java:90) at com.intellij.ide.a.c.a.a(a.java:182) at com.intellij.ide.a.d.n.a(n.java:544) at com.intellij.ide.a.d.n.c(n.java:222) at com.intellij.ide.a.d.n.a(n.java:117) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at com.intellij.idea.MainImpl.start(MainImpl.java:94) at com.intellij.idea.StartupUtil.lambda$startApp$5(StartupUtil.java:246) at com.intellij.util.ui.EdtInvocationManager.executeWithCustomManager(EdtInvocationManager.java:73) at com.intellij.idea.StartupUtil.startApp(StartupUtil.java:241) at com.intellij.idea.StartupUtil.prepareApp(StartupUtil.java:213) at com.intellij.ide.plugins.MainRunner.lambda$start$0(MainRunner.java:39) at java.base/java.lang.Thread.run(Thread.java:834) 2020-01-19 23:59:10,486 [ 3474] ERROR - tellij.diagnostic.LoadingState - PhpStorm 2019.3.1 Build #PS-193.5662.63 2020-01-19 23:59:10,486 [ 3474] ERROR - tellij.diagnostic.LoadingState - JDK: 11.0.5; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o 2020-01-19 23:59:10,486 [ 3474] ERROR - tellij.diagnostic.LoadingState - OS: Linux 2020-01-19 23:59:10,540 [ 3528] ERROR - llij.ide.plugins.PluginManager - Could not initialize class sun.awt.X11.XToolkit java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:315) at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:588) at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:583) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.desktop/java.awt.Toolkit.getDefaultToolkit(Toolkit.java:582) at java.desktop/sun.swing.SwingUtilities2.getSystemMnemonicKeyMask(SwingUtilities2.java:2210) at java.desktop/javax.swing.plaf.basic.BasicLookAndFeel.initComponentDefaults(BasicLookAndFeel.java:1096) at java.desktop/javax.swing.plaf.metal.MetalLookAndFeel.initComponentDefaults(MetalLookAndFeel.java:440) at java.desktop/javax.swing.plaf.basic.BasicLookAndFeel.getDefaults(BasicLookAndFeel.java:150) at java.desktop/javax.swing.plaf.metal.MetalLookAndFeel.getDefaults(MetalLookAndFeel.java:1560) at java.desktop/javax.swing.UIManager.setLookAndFeel(UIManager.java:592) at java.desktop/javax.swing.UIManager.setLookAndFeel(UIManager.java:634) at java.desktop/javax.swing.UIManager.initializeDefaultLAF(UIManager.java:1409) at java.desktop/javax.swing.UIManager.initialize(UIManager.java:1522) at java.desktop/javax.swing.UIManager.maybeInitialize(UIManager.java:1488) at java.desktop/javax.swing.UIManager.getDefaults(UIManager.java:714) at java.desktop/javax.swing.UIManager.getFont(UIManager.java:727) at com.intellij.ui.scale.JBUIScale.lambda$static$0(JBUIScale.java:47) at com.intellij.openapi.util.AtomicNotNullLazyValue$1.compute(AtomicNotNullLazyValue.java:59) at com.intellij.openapi.util.AtomicNotNullLazyValue.getValue(AtomicNotNullLazyValue.java:37) at com.intellij.ui.scale.JBUIScale.lambda$static$1(JBUIScale.java:152) at com.intellij.util.LazyInitializer$MutableNotNullValue.initialize(LazyInitializer.java:113) at com.intellij.util.LazyInitializer$NullableValue.get(LazyInitializer.java:41) at com.intellij.util.LazyInitializer$MutableNotNullValue.get(LazyInitializer.java:102) at com.intellij.ui.scale.JBUIScale.lambda$static$2(JBUIScale.java:170) at com.intellij.util.LazyInitializer$MutableNotNullValue.initialize(LazyInitializer.java:113) at com.intellij.util.LazyInitializer$NullableValue.get(LazyInitializer.java:41) at com.intellij.util.LazyInitializer$MutableNotNullValue.get(LazyInitializer.java:102) at com.intellij.ui.scale.JBUIScale.scale(JBUIScale.java:294) at com.intellij.util.ui.JBInsets.create(JBInsets.java:41) at com.intellij.util.ui.UIUtil.<clinit>(UIUtil.java:457) at com.intellij.ide.a.c.a.a(a.java:182) at com.intellij.ide.a.d.n.a(n.java:544) at com.intellij.ide.a.d.n.c(n.java:222) at com.intellij.ide.a.d.n.a(n.java:117) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at com.intellij.idea.MainImpl.start(MainImpl.java:94) at com.intellij.idea.StartupUtil.lambda$startApp$5(StartupUtil.java:246) at com.intellij.util.ui.EdtInvocationManager.executeWithCustomManager(EdtInvocationManager.java:73) at com.intellij.idea.StartupUtil.startApp(StartupUtil.java:241) at com.intellij.idea.StartupUtil.prepareApp(StartupUtil.java:213) at com.intellij.ide.plugins.MainRunner.lambda$start$0(MainRunner.java:39) at java.base/java.lang.Thread.run(Thread.java:834) 2020-01-19 23:59:10,542 [ 3530] ERROR - llij.ide.plugins.PluginManager - PhpStorm 2019.3.1 Build #PS-193.5662.63 2020-01-19 23:59:10,543 [ 3531] ERROR - llij.ide.plugins.PluginManager - JDK: 11.0.5; VM: OpenJDK 64-Bit Server VM; Vendor: JetBrains s.r.o 2020-01-19 23:59:10,543 [ 3531] ERROR - llij.ide.plugins.PluginManager - OS: Linux Start Failed: Internal error. Please refer to http://jb.gg/ide/critical-startup-errors java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11.XToolkit at java.base/java.lang.Class.forName0(Native Method) at java.base/java.lang.Class.forName(Class.java:315) at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:588) at java.desktop/java.awt.Toolkit$2.run(Toolkit.java:583) at java.base/java.security.AccessController.doPrivileged(Native Method) at java.desktop/java.awt.Toolkit.getDefaultToolkit(Toolkit.java:582) at java.desktop/sun.swing.SwingUtilities2.getSystemMnemonicKeyMask(SwingUtilities2.java:2210) at java.desktop/javax.swing.plaf.basic.BasicLookAndFeel.initComponentDefaults(BasicLookAndFeel.java:1096) at java.desktop/javax.swing.plaf.metal.MetalLookAndFeel.initComponentDefaults(MetalLookAndFeel.java:440) at java.desktop/javax.swing.plaf.basic.BasicLookAndFeel.getDefaults(BasicLookAndFeel.java:150) at java.desktop/javax.swing.plaf.metal.MetalLookAndFeel.getDefaults(MetalLookAndFeel.java:1560) at java.desktop/javax.swing.UIManager.setLookAndFeel(UIManager.java:592) at java.desktop/javax.swing.UIManager.setLookAndFeel(UIManager.java:634) at java.desktop/javax.swing.UIManager.initializeDefaultLAF(UIManager.java:1409) at java.desktop/javax.swing.UIManager.initialize(UIManager.java:1522) at java.desktop/javax.swing.UIManager.maybeInitialize(UIManager.java:1488) at java.desktop/javax.swing.UIManager.getDefaults(UIManager.java:714) at java.desktop/javax.swing.UIManager.getFont(UIManager.java:727) at com.intellij.ui.scale.JBUIScale.lambda$static$0(JBUIScale.java:47) at com.intellij.openapi.util.AtomicNotNullLazyValue$1.compute(AtomicNotNullLazyValue.java:59) at com.intellij.openapi.util.AtomicNotNullLazyValue.getValue(AtomicNotNullLazyValue.java:37) at com.intellij.ui.scale.JBUIScale.lambda$static$1(JBUIScale.java:152) at com.intellij.util.LazyInitializer$MutableNotNullValue.initialize(LazyInitializer.java:113) at com.intellij.util.LazyInitializer$NullableValue.get(LazyInitializer.java:41) at com.intellij.util.LazyInitializer$MutableNotNullValue.get(LazyInitializer.java:102) at com.intellij.ui.scale.JBUIScale.lambda$static$2(JBUIScale.java:170) at com.intellij.util.LazyInitializer$MutableNotNullValue.initialize(LazyInitializer.java:113) at com.intellij.util.LazyInitializer$NullableValue.get(LazyInitializer.java:41) at com.intellij.util.LazyInitializer$MutableNotNullValue.get(LazyInitializer.java:102) at com.intellij.ui.scale.JBUIScale.scale(JBUIScale.java:294) at com.intellij.util.ui.JBInsets.create(JBInsets.java:41) at com.intellij.util.ui.UIUtil.<clinit>(UIUtil.java:457) at com.intellij.ide.a.c.a.a(a.java:182) at com.intellij.ide.a.d.n.a(n.java:544) at com.intellij.ide.a.d.n.c(n.java:222) at com.intellij.ide.a.d.n.a(n.java:117) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at com.intellij.idea.MainImpl.start(MainImpl.java:94) at com.intellij.idea.StartupUtil.lambda$startApp$5(StartupUtil.java:246) at com.intellij.util.ui.EdtInvocationManager.executeWithCustomManager(EdtInvocationManager.java:73) at com.intellij.idea.StartupUtil.startApp(StartupUtil.java:241) at com.intellij.idea.StartupUtil.prepareApp(StartupUtil.java:213) at com.intellij.ide.plugins.MainRunner.lambda$start$0(MainRunner.java:39) at java.base/java.lang.Thread.run(Thread.java:834) ----- JRE 11.0.5+10-b520.17 amd64 by JetBrains s.r.o /home/PhpStorm-193.5662.63/jbr Also, a UI exception occurred on an attempt to show the above message: java.lang.NoClassDefFoundError: Could not initialize class java.awt.GraphicsEnvironment$LocalGE at java.desktop/java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:129) at java.desktop/javax.swing.RepaintManager.<clinit>(RepaintManager.java:243) at java.desktop/javax.swing.JComponent.repaint(JComponent.java:4835) at java.desktop/java.awt.Component.repaint(Component.java:3412) at java.desktop/javax.swing.text.JTextComponent.setEditable(JTextComponent.java:1818) at java.desktop/javax.swing.text.JTextComponent.<init>(JTextComponent.java:323) at java.desktop/javax.swing.JEditorPane.<init>(JEditorPane.java:198) at java.desktop/javax.swing.JTextPane.<init>(JTextPane.java:87) at com.intellij.idea.Main.showMessage(Main.java:212) at com.intellij.idea.Main.showMessage(Main.java:188) at com.intellij.ide.plugins.StartupAbortedException.processException(StartupAbortedException.java:78) at com.intellij.ide.plugins.MainRunner.lambda$start$0(MainRunner.java:42) at java.base/java.lang.Thread.run(Thread.java:834)
java swing的一个小小问题,望高手不吝赐教!
java swing中的JFrame加载背景图片后会覆盖掉所有可视组件,求教怎么办?
Java Swing应用程序如何去掉默认菜单栏
Java Swing编写普通的界面程序时,如何去掉自带的菜单下拉列表(指的是,点击那个“java咖啡图标”会弹出的那个菜单下拉表)?
java Swing 如何设置窗口内部大小?
frame.setSize(int i,int i); 这个方法设置出来的窗口大小是【包含标题和边框大小】的, 现在要求是设置【去除标题和边框部分的大小】
一个导致Swing程序死掉的bug 迷茫中!
我的程序是基于Swing+Spring+hibernate的 程序BUG是 每次选中JTable中的一条记录 点击查看结果 弹出一个JDialog 会把相应的数据从数据库加载到这个JDialog里面的Jtable中 但是我打开查看结果这个页面 然后关掉 这样连续操作5次之后 到第6次整个程序就会死掉~ 打开其他不同的查看结果页面也是这样 而且基本也是5次之后就会死掉 开始怀疑是因为hibernate查询 Lazy等问题 我就把Hibernate查询 的 东西全都拿掉了 可是还是不行 迷茫中啊 如果不是数据库操作造成的 死掉 那肯定 就是 Swing部分代码写的有问题! 那位高人给点提示 或者思路呢?
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私...
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。 也可以说是一个小人工智障。 思路可以运用在不同地方,主要介绍的是思路。
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
阿里面试官问我:如何设计秒杀系统?我的回答让他比起大拇指
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图和个人联系方式,欢迎Star和指教 前言 Redis在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在Redis的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸,打败了...
C语言魔塔游戏
很早就很想写这个,今天终于写完了。 游戏截图: 编译环境: VS2017 游戏需要一些图片,如果有想要的或者对游戏有什么看法的可以加我的QQ 2985486630 讨论,如果暂时没有回应,可以在博客下方留言,到时候我会看到。 下面我来介绍一下游戏的主要功能和实现方式 首先是玩家的定义,使用结构体,这个名字是可以自己改变的 struct gamerole { char n...
面试官问我:什么是消息队列?什么场景需要他?用了会出现什么问题?
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式和人才交流群,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸...
Android性能优化(4):UI渲染机制以及优化
文章目录1. 渲染机制分析1.1 渲染机制1.2 卡顿现象1.3 内存抖动2. 渲染优化方式2.1 过度绘制优化2.1.1 Show GPU overdraw2.1.2 Profile GPU Rendering2.2 卡顿优化2.2.1 SysTrace2.2.2 TraceView 在从Android 6.0源码的角度剖析View的绘制原理一文中,我们了解到View的绘制流程有三个步骤,即m...
微服务中的Kafka与Micronaut
今天,我们将通过Apache Kafka主题构建一些彼此异步通信的微服务。我们使用Micronaut框架,它为与Kafka集成提供专门的库。让我们简要介绍一下示例系统的体系结构。我们有四个微型服务:订单服务,行程服务,司机服务和乘客服务。这些应用程序的实现非常简单。它们都有内存存储,并连接到同一个Kafka实例。 我们系统的主要目标是为客户安排行程。订单服务应用程序还充当网关。它接收来自客户的请求...
致 Python 初学者们!
作者| 许向武 责编 | 屠敏 出品 | CSDN 博客 前言 在 Python 进阶的过程中,相信很多同学应该大致上学习了很多 Python 的基础知识,也正在努力成长。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 Python 这门编程语言,从2009年开始单一使用 Python 应对所有的开发工作,直至今...
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观...
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外...
字节跳动面试官这样问消息队列:分布式事务、重复消费、顺序消费,我整理了一下
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式和人才交流群,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸...
Python爬虫爬取淘宝,京东商品信息
小编是一个理科生,不善长说一些废话。简单介绍下原理然后直接上代码。 使用的工具(Python+pycharm2019.3+selenium+xpath+chromedriver)其中要使用pycharm也可以私聊我selenium是一个框架可以通过pip下载 pip installselenium -ihttps://pypi.tuna.tsinghua.edu.cn/simple/ ...
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca...
SpringBoot2.x系列教程(三十六)SpringBoot之Tomcat配置
Spring Boot默认内嵌的Tomcat为Servlet容器,关于Tomcat的所有属性都在ServerProperties配置类中。同时,也可以实现一些接口来自定义内嵌Servlet容器和内嵌Tomcat等的配置。 关于此配置,网络上有大量的资料,但都是基于SpringBoot1.5.x版本,并不适合当前最新版本。本文将带大家了解一下最新版本的使用。 ServerProperties的部分源...
Python绘图,圣诞树,花,爱心 | Turtle篇
每周每日,分享Python实战代码,入门资料,进阶资料,基础语法,爬虫,数据分析,web网站,机器学习,深度学习等等。 公众号回复【进群】沟通交流吧,QQ扫码进群学习吧 微信群 QQ群 1.画圣诞树 import turtle screen = turtle.Screen() screen.setup(800,600) circle = turtle.Turtle()...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东...
破14亿,Python分析我国存在哪些人口危机!
一、背景 二、爬取数据 三、数据分析 1、总人口 2、男女人口比例 3、人口城镇化 4、人口增长率 5、人口老化(抚养比) 6、各省人口 7、世界人口 四、遇到的问题 遇到的问题 1、数据分页,需要获取从1949-2018年数据,观察到有近20年参数:LAST20,由此推测获取近70年的参数可设置为:LAST70 2、2019年数据没有放上去,可以手动添加上去 3、将数据进行 行列转换 4、列名...
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o...
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ...... ...
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!...
这个世界上人真的分三六九等,你信吗?
偶然间,在知乎上看到一个问题 一时间,勾起了我深深的回忆。 以前在厂里打过两次工,做过家教,干过辅导班,做过中介。零下几度的晚上,贴过广告,满脸、满手地长冻疮。 再回首那段岁月,虽然苦,但让我学会了坚持和忍耐。让我明白了,在这个世界上,无论环境多么的恶劣,只要心存希望,星星之火,亦可燎原。 下文是原回答,希望能对你能有所启发。 如果我说,这个世界上人真的分三六九等,...
2020年全新Java学习路线图,含配套视频,学完即为中级Java程序员!!
新的一年来临,突如其来的疫情打破了平静的生活! 在家的你是否很无聊,如果无聊就来学习吧! 世上只有一种投资只赚不赔,那就是学习!!! 传智播客于2020年升级了Java学习线路图,硬核升级,免费放送! 学完你就是中级程序员,能更快一步找到工作! 一、Java基础 JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。 在Java基础板块中有6个子模块的学...
B 站上有哪些很好的学习资源?
哇说起B站,在小九眼里就是宝藏般的存在,放年假宅在家时一天刷6、7个小时不在话下,更别提今年的跨年晚会,我简直是跪着看完的!! 最早大家聚在在B站是为了追番,再后来我在上面刷欧美新歌和漂亮小姐姐的舞蹈视频,最近两年我和周围的朋友们已经把B站当作学习教室了,而且学习成本还免费,真是个励志的好平台ヽ(.◕ฺˇд ˇ◕ฺ;)ノ 下面我们就来盘点一下B站上优质的学习资源: 综合类 Oeasy: 综合...
爬取薅羊毛网站百度云资源
这是疫情期间无聊做的爬虫, 去获取暂时用不上的教程 import threading import time import pandas as pd import requests import re from threading import Thread, Lock # import urllib.request as request # req=urllib.request.Requ...
如何优雅地打印一个Java对象?
你好呀,我是沉默王二,一个和黄家驹一样身高,和刘德华一样颜值的程序员。虽然已经写了十多年的 Java 代码,但仍然觉得自己是个菜鸟(请允许我惭愧一下)。 在一个月黑风高的夜晚,我思前想后,觉得再也不能这么蹉跎下去了。于是痛下决心,准备通过输出的方式倒逼输入,以此来修炼自己的内功,从而进阶成为一名真正意义上的大神。与此同时,希望这些文章能够帮助到更多的读者,让大家在学习的路上不再寂寞、空虚和冷。 ...
雷火神山直播超两亿,Web播放器事件监听是怎么实现的?
Web播放器解决了在手机浏览器和PC浏览器上播放音视频数据的问题,让视音频内容可以不依赖用户安装App,就能进行播放以及在社交平台进行传播。在视频业务大数据平台中,播放数据的统计分析非常重要,所以Web播放器在使用过程中,需要对其内部的数据进行收集并上报至服务端,此时,就需要对发生在其内部的一些播放行为进行事件监听。 那么Web播放器事件监听是怎么实现的呢? 01 监听事件明细表 名...
3万字总结,Mysql优化之精髓
本文知识点较多,篇幅较长,请耐心学习 MySQL已经成为时下关系型数据库产品的中坚力量,备受互联网大厂的青睐,出门面试想进BAT,想拿高工资,不会点MySQL优化知识,拿offer的成功率会大大下降。 为什么要优化 系统的吞吐量瓶颈往往出现在数据库的访问速度上 随着应用程序的运行,数据库的中的数据会越来越多,处理时间会相应变慢 数据是存放在磁盘上的,读写速度无法和内存相比 如何优化 设计...
HTML5适合的情人节礼物有纪念日期功能
前言 利用HTML5,css,js实现爱心树 以及 纪念日期的功能 网页有播放音乐功能 以及打字倾诉感情的画面,非常适合情人节送给女朋友 具体的HTML代码 具体只要修改代码里面的男某某和女某某 文字段也可自行修改,还有代码下半部分的JS代码需要修改一下起始日期 注意月份为0~11月 也就是月份需要减一。 当然只有一部分HTML和JS代码不够运行的,文章最下面还附加了完整代码的下载地址 &lt;!...
相关热词 c# 识别回车 c#生成条形码ean13 c#子控制器调用父控制器 c# 写大文件 c# 浏览pdf c#获取桌面图标的句柄 c# list反射 c# 句柄 进程 c# 倒计时 线程 c# 窗体背景色
立即提问