Java JButton事件监听,按下后,没有反应?

给JButton注册了事件监听器,但是按下后没有反应,下面是代码部分。代码无错误。


下面只有关于按钮部分的代码


我写了一个生成相关文件的图形界面,总代码较长,放到了后面,真心希望大佬可以给出解答!!!


是不是相关的逻辑层面出了错误呢?大佬给些相关方面的提示也可以,谢谢啦!


真的想了好久好久,始终不知道错误出在哪里。

按钮生成函数
public static JButton[] createButton (int x) {
        JButton[] jb = new JButton[x];

        //将生成的button放入JButton型数组
        for(int k = 0; k < x; k++) {
            JButton button = new JButton(getAllTableNames(ProjectConfig.DATABASE_NAME).get(k));
            Dimension preferredSize = new Dimension(280, (500-50)/(getAllTableNames(ProjectConfig.DATABASE_NAME).size()+1));
            button.setPreferredSize(preferredSize);
            jb[k] = button;
        }
        return jb;
    }

按钮注册事件监听,并且增加到界面的函数

        //添加button
        list = getAllTableNames(ProjectConfig.DATABASE_NAME);
        number = list.size();

        for ( int i = 0; i < number; i++){

            int j = i;

            //增添按钮
            gui.add(createButton(number)[j]);
            //实现按钮监听
            createButton(number)[j].addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    System.out.println("hello");

                }
            });

            System.out.println("hello!!!!");
        }


这是总代码:



package com.springjdbc.demo;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class Gui extends JFrame{

    /**
     * 
     */
    private static final long serialVersionUID = -3735744874051620286L;

    public static List<String> list;      //存放获取的数据表名
    public static int number;             //数据表的数量

    JLabel label = new JLabel("数据表列表");

    public Gui (String title) {
        super(title);
        this.setLayout( new FlowLayout( FlowLayout.CENTER));//布局模式

        this.add(label);
    }


    public static void main(String[] args) throws SQLException {        
        List<String> tables = getAllTableNames(ProjectConfig.DATABASE_NAME);
        System.out.println(tables);


        //设置窗口属性
        Gui gui = new Gui("数据库代码生成");
        gui.setDefaultCloseOperation( JFrame.DISPOSE_ON_CLOSE);//点击关闭图标是关闭窗口
        gui.setSize(350, 550);//设置窗口大小
        gui.setVisible(true);//设置窗口可见w
        gui.setLocation(200, 100);//设置左上角坐标


        //添加button
        list = getAllTableNames(ProjectConfig.DATABASE_NAME);
        number = list.size();

        for ( int i = 0; i < number; i++){

            int j = i;

            //增添按钮
            gui.add(createButton(number)[j]);
            //实现按钮监听
            createButton(number)[j].addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    System.out.println("hello");

                }
            });

            System.out.println("hello!!!!");
        }


    }



    public static JButton[] createButton (int x) {
        JButton[] jb = new JButton[x];

        //将生成的button放入JButton型数组
        for(int k = 0; k < x; k++) {
            JButton button = new JButton(getAllTableNames(ProjectConfig.DATABASE_NAME).get(k));
            Dimension preferredSize = new Dimension(280, (500-50)/(getAllTableNames(ProjectConfig.DATABASE_NAME).size()+1));
            button.setPreferredSize(preferredSize);
            jb[k] = button;
        }
        return jb;
    }

    //保证只是注册一次驱动
    static{
        try {
            Class.forName(ProjectConfig.JDBC_DIVER_CLASS_NAME);
        } catch (ClassNotFoundException e) {
            throw new ExceptionInInitializerError(e);
        }
    }

    /**
     * 获取连接
     * @return
     * @throws SQLException
     */
    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(ProjectConfig.JDBC_URL, ProjectConfig.JDBC_USERNAME, ProjectConfig.JDBC_PASSWORD);
    }


    public static List<String> getAllTableNames( String databasename) {
          List<String> tableNames = new ArrayList<String>();
          Connection conn = null;         

           try {
               conn = getConnection();
            DatabaseMetaData dbmd = conn.getMetaData();
            // 表名列表
            ResultSet rest = dbmd.getTables(databasename, null, null, new String[] { "TABLE" });
            // 输出 table_name
            while (rest.next()) {
              tableNames.add(rest.getString("TABLE_NAME"));
            }
           } catch (SQLException e) {
            e.printStackTrace();
           }
          return tableNames;
         }

}

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
鼠标监听器不起作用的问题

下面这个代码不知道为什么鼠标监听器的动作实现不了。。。在线等! package J_Fram; import javax.swing.JButton; import javax.swing.JFrame; import java.awt.Color; import java.awt.Container; import java.awt.FlowLayout; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; public class J_Frame_MouseLisenter extends MouseAdapter{ JFrame f; JButton red,blue,yellow; public J_Frame_MouseLisenter() { // TODO Auto-generated constructor stub f = new JFrame("鼠标事件"); f.setLayout(new FlowLayout()); f.setBounds(400, 200, 300, 250); red = new JButton("红色"); red.addMouseListener(this); f.add(red); f.setVisible(true); } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub f.setBackground(Color.RED); } public static void main(String[] args) { // TODO Auto-generated method stub J_Frame_MouseLisenter t= new J_Frame_MouseLisenter(); } }

关于Java鼠标监听器的问题

我按网上的鼠标监听器的内部类的方法写的结构,但是不知道为什么用鼠标之后没有结果,麻烦各位大神帮我看看 新人第一次用这个提问,关于提问的方式或者表述不清楚也欢迎大家指正啊 谢谢大家!!! buttonListener是Map1的内部类 ``` import javax.swing.*; public class test { public static void main(String[] args){ JFrame frame=new Map1(); frame.setVisible(true); new Map1(); } } ``` ``` import javax.swing.JFrame; import javax.swing.*; import java.awt.GridLayout; import java.awt.*; import java.awt.event.*; public class Map1 extends JFrame { ImageIcon bank1 = new ImageIcon("bank1.jpg");//为按钮加载图片 ImageIcon bank2 = new ImageIcon("bank2.jpg"); ImageIcon plank1 = new ImageIcon("plank1.jpg"); ImageIcon plank1_man = new ImageIcon("plank1_man.jpg"); ImageIcon plank2 = new ImageIcon("plank2.jpg"); ImageIcon plank2_man = new ImageIcon("plank2_man.jpg"); ImageIcon stump1 = new ImageIcon("stump1.jpg"); ImageIcon stump1_man = new ImageIcon("stump1_man.jpg"); ImageIcon stump2 = new ImageIcon("stump2.jpg"); ImageIcon stump2_man = new ImageIcon("stump2_man.jpg"); ImageIcon stump3 = new ImageIcon("stump3.jpg"); ImageIcon stump3_man = new ImageIcon("stump3_man.jpg"); ImageIcon water1 = new ImageIcon("water1.jpg"); ImageIcon water2 = new ImageIcon("water2.jpg"); ImageIcon water3 = new ImageIcon("water3.jpg"); ImageIcon water4 = new ImageIcon("water4.jpg"); JButton[][] button=new JButton[13][9];//创建按钮对象 public int xmove; public int ymove; public int xdecide=4; public int ydecide=12; public int decide[][]={ {0,0,0,0,0,0,0,0,0},//小人是1 {0,0,0,0,0,0,0,0,0},//木桩子是q2 {2,0,0,0,0,0,0,0,0},//桥是3 {0,0,0,0,0,0,0,0,0}, {0,0,0,0,2,0,0,0,0}, {0,0,0,0,0,0,0,0,0}, {2,0,2,3,3,3,2,0,0}, {0,0,0,0,0,0,0,0,0}, {2,0,0,0,2,0,0,0,0}, {3,0,0,0,3,0,0,0,0}, {2,0,0,0,3,0,0,0,0}, {0,0,0,0,3,0,0,0,0}, {0,0,0,0,1,0,0,0,0}, }; public Map1() { setSize(300,450);//设置大小 //JButton[][] button=new JButton[13][9];//创建按钮对象 JPanel panel=new JPanel(); setTitle("RiverCrossing"); this.add(panel); panel.setLayout(new GridLayout(13,9,0,0)); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); for(int a=0;a<9;a++) { button[0][a]=new JButton(bank2); } for(int a=0;a<9;a++) { button[12][a]=new JButton(bank1); } for(int a=1;a<12;a++) { for(int b=0;b<9;b++) { button[a][b]=new JButton(water1); } } //下面是第一个地图的(这些跟问题没关) button[2][0]=new JButton(stump1); button[6][0]=new JButton(stump1); button[8][0]=new JButton(stump1); button[10][0]=new JButton(stump1); button[3][1]=new JButton(water4); button[5][1]=new JButton(water3); button[5][2]=new JButton(water4); button[6][2]=new JButton(stump1); button[8][2]=new JButton(water4); button[2][4]=new JButton(water4); button[4][4]=new JButton(stump1); button[8][4]=new JButton(stump1); button[3][6]=new JButton(water3); button[6][6]=new JButton(stump1); button[12][4]=new JButton(stump2_man); button[0][4]=new JButton(stump3); button[9][0]=new JButton(plank2); button[9][4]=new JButton(plank2); button[10][4]=new JButton(plank2); button[11][4]=new JButton(plank2); buttonListener btListener[][]=new buttonListener[13][9];//创建监听器 for(int a=0;a<13;a++) { for(int b=0;b<9;b++) { panel.add(button[a][b]); button[a][b].addMouseListener(btListener[a][b]);//给监听器加到按钮 //System.out.printf("21"); } } } public class buttonListener implements MouseListener { public void mouseReleased(MouseEvent e) { System.out.printf("1"); outterloop:if(e.getButton() == MouseEvent.BUTTON1)//左键该执行的操作(移动小人) { for(ymove=0;ymove<13;ymove++)//行的位置 { for(xmove=0;xmove<9;xmove++)//列的位置 { if(e.getSource()==button[ymove][xmove])//点击的那个按钮的坐标 { //move(button,ymove,xmove); ymove=0; xmove=0; break outterloop; } } } } } public void mousePressed(MouseEvent e) { } public void mouseClicked(MouseEvent e) { } public void mouseEntered(MouseEvent e) { } public void mouseExited(MouseEvent e) { } } } ```

java中按钮添加addActionListener后没有效果

各位大侠, 对按钮添加事件监听后,点击按钮想将文本框中的“123”改为“456”,可为什么没有变化呢?代码如下: ``` package test2; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; public class ClickAdd extends JFrame { private JPanel panel; private JButton button; private JTextField field; public static void main(String[] args) { ClickAdd frame = new ClickAdd(); frame.setVisible(true); } public ClickAdd() { init(); addActionListener(); } private void addActionListener() { button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { change(); } }); } private void init() { panel = new JPanel(); button = new JButton("添加"); String string = "123"; field = new JTextField(string); panel.add(field); panel.add(button); this.setSize(100, 100); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.add(panel); } private void change() { String string = "456"; field = new JTextField(string); } } ``` 而如果把change()中的field = new JTextField(string)改成field.setText(string)就可以了呢?

求救。为什么键盘监听事件不响应了。。

mport java.awt.CardLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.Timer; public class GamePanel extends JPanel implements ActionListener { public static final int B_WIDTH = 450; public static final int B_HEIGHT = 450; public static final int DOT_SIZE = 15; public static final int ALL_DOTS = 900; public static final int DELAY = 100; private static final Font gameOverFont = new Font("Verdana", Font.BOLD, 60); public boolean inGame = true; public String playerName; public Timer timer; boolean live = true; JFrame myJFrame = null; Image offScreenImage = null; Snake mySnake = new Snake(); Food f = new Food(); public static void main(String[] args) { new GamePanel().launchGame(); } public void launchGame() { myJFrame = new JFrame(); myJFrame.setTitle("Snake"); myJFrame.setLocation(400,200); myJFrame.setPreferredSize(new Dimension(B_WIDTH, B_HEIGHT)); myJFrame.setContentPane(new WelcomePanel(this)); myJFrame.addKeyListener(new GamePanel().new KeyMonitor()); myJFrame.pack(); myJFrame.setVisible(true); myJFrame.setResizable(false); myJFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); myJFrame.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { timer.stop(); int exit = JOptionPane.showConfirmDialog(null, "确定退出吗", "友情提示", JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE); if(exit == JOptionPane.YES_OPTION) { System.exit(0); } else { timer.start(); return; } } }); timer = new Timer(DELAY, this); } public GamePanel() { this.setBackground(Color.BLACK); this.setPreferredSize(new Dimension(B_WIDTH, B_HEIGHT)); this.setFocusable(true); this.addKeyListener(new KeyMonitor()); this.setVisible(false); } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); this.setDoubleBuffered(true); mySnake.checkLive(); if(mySnake.isLive()) { mySnake.draw(g); } else { timer.stop(); this.gameOver(g); } if(f.isLive()) { f.draw(g); } else { f = new Food(); } mySnake.eatFood(f); } private void gameOver(Graphics g) { g.setFont(gameOverFont); } @Override public void actionPerformed(ActionEvent e) { repaint(); } private class KeyMonitor extends KeyAdapter { @Override public void keyPressed(KeyEvent e) { mySnake.keyPressed(e); } } } import java.awt.Color; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JPanel; import javax.swing.JTextField; public class WelcomePanel extends JPanel implements ActionListener{ GamePanel gp; JButton start = null; JButton help = null; JTextField inputName = null; public WelcomePanel(GamePanel gp) { this.gp = gp; start = new JButton("START"); start.setBackground(Color.RED); start.setBounds(160, 220, 130, 40); start.setForeground(Color.RED); start.addActionListener(this); help = new JButton("HELP"); help.setBackground(Color.RED); help.setBounds(160, 270, 130, 40); help.setForeground(Color.RED); help.addActionListener(this); inputName = new JTextField("请输入你的昵称", 10); inputName.setBounds(160, 160, 150, 40); this.setBackground(Color.BLACK); this.setPreferredSize(new Dimension(GamePanel.B_WIDTH, GamePanel.B_HEIGHT)); this.setLayout(null); this.add(start); this.add(inputName); } @Override public void actionPerformed(ActionEvent e) { if(e.getSource() == start) { gp.playerName = inputName.getText(); System.out.println(gp.playerName); gp.myJFrame.setContentPane(gp); gp.setVisible(true); gp.timer.start(); } else if(e.getSource() == help) { } } } import java.awt.Color; import java.awt.EventQueue; import java.awt.Graphics; import java.awt.event.KeyEvent; import javax.swing.JFrame; public class Snake { GamePanel gp; Direction dir = Direction.R; int x, y, size; private boolean live = true; private int sX[] = new int[GamePanel.ALL_DOTS]; private int sY[] = new int[GamePanel.ALL_DOTS]; public Snake() { size = 2; sX[0] = 1 * GamePanel.DOT_SIZE; sX[1] = 0 * GamePanel.DOT_SIZE; sY[0] = 0 * GamePanel.DOT_SIZE; sY[1] = 0 * GamePanel.DOT_SIZE; } public Snake(int x, int y, GamePanel gp) { this.x = x; this.y = y; this.gp = gp; } public void draw(Graphics g) { move(); Color c = g.getColor(); g.setColor(Color.GREEN); for(int i=0; i<size; i++) { g.fillOval(sX[i], sY[i], GamePanel.DOT_SIZE, GamePanel.DOT_SIZE); } } public void keyPressed(KeyEvent e) { int key = e.getKeyCode(); switch(key) { case KeyEvent.VK_UP : if(dir == Direction.D) break; dir = Direction.U; break; case KeyEvent.VK_DOWN : if(dir == Direction.U) break; dir = Direction.D; break; case KeyEvent.VK_LEFT : if(dir == Direction.R) break; dir = Direction.L; break; case KeyEvent.VK_RIGHT : if(dir == Direction.L) break; dir = Direction.R; break; } } public void move() { for(int i=size-1; i>0; i--) { sX[i] = sX[(i-1)]; sY[i] = sY[(i-1)]; } switch(dir) { case U : sY[0] -= GamePanel.DOT_SIZE; break; case D : sY[0] += GamePanel.DOT_SIZE; break; case L : sX[0] -= GamePanel.DOT_SIZE; break; case R : sX[0] += GamePanel.DOT_SIZE; break; } System.out.println(dir); } public boolean eatFood(Food f) { if(f.fX == sX[0] && f.fY == sY[0]) { f.setLive(false); this.grow(); return true; } return false; } private void grow() { size ++; } public boolean isLive() { return live; } public void setLive(boolean live) { this.live = live; } public void checkLive() { if(sX[0] < 0 || sX[0] >= GamePanel.B_WIDTH || sY[0] < 0 || sY[0] >= GamePanel.B_HEIGHT) { this.setLive(false); } for(int i=1; i<size; i++) { if(sX[0] == sX[i] && sY[0] == sY[i]) { this.setLive(false); break; } } } } import java.awt.Color; import java.awt.Graphics; import java.util.Random; public class Food { public int fX; public int fY; private boolean live = true; private static Random r = new Random(); public Food() { fX = r.nextInt(GamePanel.B_WIDTH / GamePanel.DOT_SIZE) * GamePanel.DOT_SIZE; fY = r.nextInt(GamePanel.B_HEIGHT / GamePanel.DOT_SIZE) * GamePanel.DOT_SIZE; } public void draw(Graphics g) { Color c = g.getColor(); g.setColor(Color.RED); g.fillOval(fX, fY, GamePanel.DOT_SIZE, GamePanel.DOT_SIZE); } public boolean isLive() { return live; } public void setLive(boolean live) { this.live = live; } } public enum Direction { U, D, L, R } 按下键盘 keyPressed方法没有被调用啊。。焦点我设置了还是没用啊 跪求大神

用java实现这个计算器为什么不能用(点击按钮为啥没反应),求大神解答??

import java.awt.BorderLayout; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; public class Calculate implements ActionListener{ String s="";//数字存入这个变量 String s1="";//保存运算符 String s2="";//用于显示; JTextField jt=new JTextField(20); String z="+,-,*,/"; String z1="0,1,2,3,4,5,6,7,8,9,."; double d;//用来存储运算符左边的数 public void actionPerformed(ActionEvent e){ String s3=e.getActionCommand(); if(s3.contains(z1)){ s=s+s3; s2=s; jt.setText(s2); } if(s3.contains(z)){ d=Double.parseDouble(s2); s="";//清零 s1=s3;//存入运算符 } if(s3.equals("=")){ if(s2.equals("+")){ s2=(d+Double.parseDouble(s))+"";//实现加法 } if(s2.equals("-")){ s2=(d-Double.parseDouble(s))+"";//实现减法 } if(s2.equals("*")){ s2=(d*Double.parseDouble(s))+"";//实现乘法 } if(s2.equals("/")){ s2=(d/Double.parseDouble(s))+"";//实现除法 } jt.setText(s2); s="";//运算结束清零 } } public Calculate(){ JFrame jf=new JFrame("Calculate"); JPanel p=new JPanel();//面板 JButton[] b=new JButton[16]; GridLayout grid=new GridLayout(4,4); String[] lab={"7","8","9","+", "4","5","6","-", "1","2","3","*", "0",".","/","=" }; for(int i=0;i<b.length;i++){ b[i]=new JButton(lab[i]); p.add(b[i]); b[i].addActionListener(this); } p.setLayout(grid); jf.add(jt,BorderLayout.NORTH); jf.add(p); jf.setResizable(false); jf.setLocation(300,200); jf.pack(); jf.setVisible(true); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args){ new Calculate(); } }

一个JPanel中的按钮点击后往另一个JPanel中添加一个JTextField

我现在实现的是有一个Class A里面是初始化窗体的,然后通过JSplitPane将窗体分成左右两部分,左边部分是new Class B,B是继承JScrollPane的,右半部分是装的Class C,C也是继承JPane,现在要实现的就是B中有一个按钮,点击这个按钮的时候往C中添加一个JTextField,现在的问题是不知道如何取得C ,我直接在B的按钮监听中new一个C的面板添加JTextField后,窗口中没有变化,求大神指导。 代码类似这样,实际中比这个更复杂,代码粘过去就可以跑: package com.test; import java.awt.Dimension; import java.awt.Toolkit; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JSplitPane; public class A extends JFrame { public A(){ super("测试"); setSize(1000,800); //激活窗体的关闭按钮 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置窗体的初始化位置(屏幕中央) Toolkit kit=Toolkit.getDefaultToolkit(); Dimension screenSize=kit.getScreenSize(); int width=screenSize.width; int height=screenSize.height; int x=(width-WIDTH)/2; int y=(height-HEIGHT)/2; setLocation(x,y); final JSplitPane hSplitPane = new JSplitPane(); B b = new B(); JScrollPane bPanel = b.getB(); JPanel c = new C(); hSplitPane.setLeftComponent(bPanel); hSplitPane.setRightComponent(c); //设置分割栏左侧的默认宽度 hSplitPane.setDividerLocation(230); //让分隔线显示出箭头 hSplitPane.setOneTouchExpandable(false); getContentPane().add(hSplitPane); show(); } public static void main(String[] args) { A a = new A(); a.setVisible(true); } } package com.test; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JButton; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextField; public class B extends JScrollPane { public JScrollPane getB(){ JButton jb = new JButton("添加"); add(jb); jb.addMouseListener(new MouseAdapter() { @Override public void mouseClicked(MouseEvent arg0) { JTextField field = new JTextField(); field.setText("你选取ssssssssssssssssssssssss:"); C mainPanel = new C(); mainPanel.add(field); //如何向C中的p1添加field控件? System.out.println("如何向C中的p1添加field控件?"); } }); JScrollPane jspane = new JScrollPane(jb); return jspane; } } package com.test; import java.awt.BorderLayout; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextField; import org.json.JSONObject; import com.yeeda.pollyover.MainPanel; public class C extends JPanel { public C(){ JPanel p1 = new JPanel(); JPanel p2 = new JPanel(); JLabel jl = new JLabel("aaaaaaaaaa"); JButton ok = new JButton("确定"); add(p1,BorderLayout.CENTER); add(p2,BorderLayout.SOUTH); p1.add(jl); p2.add(ok); } }

如何在JFrame中通过按钮事件载入不同面板?

我写了一个程序,想实现按oval按钮时,绘制圆形,按rectangle时,绘制矩形。 所以我写了两个JPanel的子类oval类和rectangle类。然后在JFrame中 想通过点击 不同按钮实现不同jpanel类的调用,该如何实现? jframe子类 public class DrawShapeByMouse extends JFrame { //add two buttons private JButton button1 = new JButton("Oval"); private JButton button2 = new JButton("Rectangle"); private JPanel ShapeJpanel = new DrawOval(); //Constructors public DrawShapeByMouse() { this.add(ShapeJpanel,BorderLayout.CENTER); add(button1,BorderLayout.SOUTH); add(button2,BorderLayout.NORTH); //给按键注册监听器 button1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { ShapeJpanel = new DrawOval(); } }); button2.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { ShapeJpanel = new DrawRectangle(); System.out.println("你好世界!"); } }); } public static void main(String[] args) { DrawShapeByMouse frame = new DrawShapeByMouse(); frame.setTitle("DrawOvalByMouse"); frame.setSize(400,400); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } oval类 class DrawOval extends JPanel { private final Color[] color = {Color.red,Color.YELLOW,Color.GREEN,Color.ORANGE}; //填充颜色 private int xCoord = 0;// private int yCoord = 0;//圆心坐标 private final int radius = 30; //半径 private int num = 0; //用来控制颜色 //Constructors public DrawOval() { //鼠标点击事件注册监听器并且实现接口 this.addMouseListener(new MouseAdapter() { public void mousePressed(MouseEvent e) { xCoord = e.getX(); yCoord = e.getY(); num = (int)(Math.random()*color.length); repaint(); } }); this.addMouseMotionListener(new MouseMotionAdapter() { public void mouseDragged(MouseEvent e) { xCoord = e.getX(); yCoord = e.getY(); repaint(); } }); } //绘制面板 protected void paintComponent(Graphics g) { //super.paintComponent(g); g.setColor(color[num]); g.fillOval(xCoord-radius, yCoord-radius,radius,radius); } } rectangle同oval类;

刚学Swing,点按钮弹不出窗口。

import java.awt.*; import javax.swing.*; import java.awt.event.*; class myFrame extends JFrame{ public void firstFrame(){ JFrame jf=new JFrame(); Container container=jf.getContentPane(); JLabel jl=new JLabel("nothing exist"); jl.setHorizontalAlignment(SwingConstants.CENTER); container.add(jl); jf.setSize(300,500); jf.setVisible(true); jf.setBackground(Color.blue); container.setLayout(null); JButton jb=new JButton("show a button"); jb.setBounds(100,10,100,50); jb.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ new myDialog().firstDialog(jf); } }); container.add(jb); jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } } class myDialog extends JDialog{ public void firstDialog(JFrame frame){ JDialog jd=new JDialog(frame,"my first dialog",true); Container container=jd.getContentPane(); container.add(new JLabel("star chatting")); container.setBounds(120, 120, 100, 100); container.setVisible(true); container.setBackground(Color.black); } } public class Test{ public static void main(String[] args){ new myFrame().firstFrame(); } } ![图片说明](https://img-ask.csdn.net/upload/201702/03/1486115160_611789.png) 运行之后弹出这个界面 点了button按钮弹不出框 刚学swing 还没学监听这方面 addActionListener方法是抄书里写的 求解决 谢谢。

为什么Java简单图形界面改不了字体样式?

这就是Java GUI一个简单的文字预览器 程序可以运行,只是有一点儿Bug找不出来 可以改字体的颜色了已经,样式的参数也改变了 但是最后显示处理样式还是不变,有点绕进去了我 **大神求救,小白要哭了** ``` import java.awt.*; import java.awt.event.*; import java.awt.font.*; import javax.swing.*; public class ArtFont extends JFrame implements ActionListener{ JComboBox fontType; JComboBox fontSize; JCheckBox boldBx;//粗体按钮 JCheckBox italicBx;//斜体按钮 JButton colorBtn; //颜色按钮 String[] fontNames;//字体名称 String[] fontSizes;//字体尺寸 JLabel label;//输入提示标签 JTextField inputText;//文字输入框 JTextArea txtArea;//文字显示区 JPanel fontPanel;//字体设置 JPanel showPanel;//显示效果区 Font font; int boldStyle,italicStyle,underlineStyle; int fontSizeStyle; String fontNameStyle; Color colorStyle = Color.black;//设置字体的默认颜色为黑色; public ArtFont(){ super("字体设置"); //设置默认字体 boldStyle = 0; italicStyle = 0; underlineStyle = 0; fontSizeStyle = 10; fontNameStyle = "隶书"; fontPanel = new JPanel(); fontPanel.setLayout(new FlowLayout()); GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); fontNames = ge.getAvailableFontFamilyNames();//获得系统中所有字体的名字 font = new Font(fontNameStyle,boldStyle+italicStyle,fontSizeStyle); fontType = new JComboBox(fontNames); fontType.setEditable(false); fontType.setMaximumRowCount(10); fontType.addItemListener(new ItemListener(){ public void itemStateChanged(ItemEvent e){ fontNameStyle = fontType.getSelectedItem().toString(); //txtArea.getText().setFont(new Font((String)fontType.getSelectedItem(),Font.PLAIN,10));//实现监听字体名字改变的事件 } }); //设置字体大小 fontSizes = new String[63]; for(int i=0;i<63;i++){ fontSizes[i] = Integer.toString((i+10)); } fontSize = new JComboBox(fontSizes); fontSize.setEditable(false); fontSize.setMaximumRowCount(10); fontSize.addItemListener(new ItemListener(){ public void itemStateChanged(ItemEvent e){ if(e.getSource() == fontSize){//改变字体 fontSizeStyle = Integer.parseInt(fontSize.getSelectedItem().toString()); } else if(e.getSource()==inputText){//将输入的文字在文字显示区表示 txtArea.setText(inputText.getText()); } //txtArea.getText().setFont(new Font("宋体",Font.PLAIN,(int)fontSize.getSelectedItem()));//实现监听字体大小改变的方法 } }); //设置粗体选择按钮; boldBx = new JCheckBox("粗体"); boldBx.addItemListener(new ItemListener(){ public void itemStateChanged(ItemEvent e){ boldStyle = 1; //txtArea.getText().setFont(new Font("宋体",Font.BOLD,10));//实现监听选择粗体状态改变的方法 } }); //实现斜体选择按钮 italicBx = new JCheckBox("斜体"); italicBx.addItemListener(new ItemListener(){ public void itemStateChanged(ItemEvent e){ italicStyle = 1; //txtArea.getText().setFont(new Font("宋体",Font.ITALIC,10));//实现监听选择斜体状态改变的方法 } }); //实现颜色选择 colorBtn = new JButton("颜色"); colorBtn.addActionListener(this); //设置字体面板 fontPanel.add(fontType); fontPanel.add(fontSize); fontPanel.add(boldBx); fontPanel.add(italicBx); fontPanel.add(colorBtn); //设置输入提示标签 label = new JLabel("输入"); //设置文本输入框 inputText = new JTextField(30); inputText.addActionListener(this); //设置文本显示区 txtArea = new JTextArea(10,80); txtArea.setFont(font); //设置文本面板 showPanel = new JPanel(); showPanel.add(label); showPanel.add(inputText); showPanel.setLayout(new FlowLayout()); showPanel.add(new JScrollPane(txtArea)); //设置容器 Container container = getContentPane(); container.setLayout(new BorderLayout()); container.add(fontPanel,BorderLayout.NORTH); container.add(showPanel,BorderLayout.CENTER); setSize(500,300); setVisible(true); } public void actionPerformed(ActionEvent e){ if(e.getSource() == colorBtn){//改变颜色 colorStyle = JColorChooser.showDialog(this,"选择字体颜色",colorStyle); colorBtn.setForeground(colorStyle); txtArea.setForeground(colorStyle); } else if(e.getSource()==inputText){//将输入的文字在文字显示区表示 txtArea.setText(inputText.getText()); } } public static void main(String[] args){ ArtFont artFont = new ArtFont(); artFont.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } ```

为啥这个改字体没用,检查不出来Java简单GUI

这是一个实现改变文本字体样式的简单编辑器,用Java实现的简单GUI 改变字体的颜色没有问题,但是改变样式没有作用 检查了参数确实都正确,不知道问题在哪 求大神帮忙挑出来,感激不及 ____________________________________________________________ ``` import java.awt.*; import java.awt.event.*; import java.awt.font.*; import javax.swing.*; public class ArtFont extends JFrame implements ActionListener{ JComboBox fontType; JComboBox fontSize; JCheckBox boldBx;//粗体按钮 JCheckBox italicBx;//斜体按钮 JButton colorBtn; //颜色按钮 String[] fontNames;//字体名称 String[] fontSizes;//字体尺寸 JLabel label;//输入提示标签 JTextField inputText;//文字输入框 JTextArea txtArea;//文字显示区 JPanel fontPanel;//字体设置 JPanel showPanel;//显示效果区 Font font; int boldStyle,italicStyle,underlineStyle; int fontSizeStyle; String fontNameStyle; Color colorStyle = Color.black;//设置字体的默认颜色为黑色; public ArtFont(){ super("字体设置"); //设置默认字体 boldStyle = 0; italicStyle = 0; underlineStyle = 0; fontSizeStyle = 10; fontNameStyle = "宋体"; fontPanel = new JPanel(); fontPanel.setLayout(new FlowLayout()); GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); fontNames = ge.getAvailableFontFamilyNames();//获得系统中所有字体的名字 font = new Font(fontNameStyle,boldStyle+italicStyle,fontSizeStyle); fontType = new JComboBox(fontNames); fontType.setEditable(false); fontType.setMaximumRowCount(10); fontType.addItemListener(new ItemListener(){ public void itemStateChanged(ItemEvent e){ fontNameStyle = fontType.getSelectedItem().toString(); //txtArea.getText().setFont(new Font((String)fontType.getSelectedItem(),Font.PLAIN,10));//实现监听字体名字改变的事件 } }); //设置字体大小 fontSizes = new String[63]; for(int i=0;i<63;i++){ fontSizes[i] = Integer.toString((i+10)); } fontSize = new JComboBox(fontSizes); fontSize.setEditable(false); fontSize.setMaximumRowCount(10); fontSize.addItemListener(new ItemListener(){ public void itemStateChanged(ItemEvent e){ fontSizeStyle = Integer.parseInt(fontSize.getSelectedItem().toString()); //txtArea.getText().setFont(new Font("宋体",Font.PLAIN,(int)fontSize.getSelectedItem()));//实现监听字体大小改变的方法 } }); //设置粗体选择按钮; boldBx = new JCheckBox("粗体"); boldBx.addItemListener(new ItemListener(){ public void itemStateChanged(ItemEvent e){ boldStyle = 1; //txtArea.getText().setFont(new Font("宋体",Font.BOLD,10));//实现监听选择粗体状态改变的方法 } }); //实现斜体选择按钮 italicBx = new JCheckBox("斜体"); italicBx.addItemListener(new ItemListener(){ public void itemStateChanged(ItemEvent e){ italicStyle = 1; //txtArea.getText().setFont(new Font("宋体",Font.ITALIC,10));//实现监听选择斜体状态改变的方法 } }); //实现颜色选择 colorBtn = new JButton("颜色"); colorBtn.addActionListener(this); //设置字体面板 fontPanel.add(fontType); fontPanel.add(fontSize); fontPanel.add(boldBx); fontPanel.add(italicBx); fontPanel.add(colorBtn); //设置输入提示标签 label = new JLabel("输入"); //设置文本输入框 inputText = new JTextField(30); inputText.addActionListener(this); //设置文本显示区 txtArea = new JTextArea(10,80); txtArea.setFont(font); //设置文本面板 showPanel = new JPanel(); showPanel.add(label); showPanel.add(inputText); showPanel.setLayout(new FlowLayout()); showPanel.add(new JScrollPane(txtArea)); //设置容器 Container container = getContentPane(); container.setLayout(new BorderLayout()); container.add(fontPanel,BorderLayout.NORTH); container.add(showPanel,BorderLayout.CENTER); setSize(500,300); setVisible(true); } public void actionPerformed(ActionEvent e){ if(e.getSource() == colorBtn){//改变颜色 colorStyle = JColorChooser.showDialog(this,"选择字体颜色",colorStyle); colorBtn.setForeground(colorStyle); txtArea.setForeground(colorStyle); } else if(e.getSource()==inputText){//将输入的文字在文字显示区表示 txtArea.setText(inputText.getText()); } } public static void main(String[] args){ ArtFont artFont = new ArtFont(); artFont.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } } ```

关于java的UDP通信问题。。。。。。。

我建立了两个客户端和一个服务端,一个客户端发消息给服务器,然后服务器转发给另一个客户端。问题是这样的,客户端1发了一个消息1给服务器然后转发给客户端2,然后这时候要是客户端2要给客户端1发个消息2的话,客户端1却是收到刚刚发出去的消息1,客户端2再发消息的时候就正常了,消息2不知道哪里去了,调试的时候客户端2发的消息2是有传送到服务器的,可是服务器再发出去的时候就变了 ![图片说明](https://img-ask.csdn.net/upload/201711/26/1511695595_978945.png) 服务器程序: import java.net.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowEvent; import java.awt.event.WindowListener; import javax.swing.*; import java.sql.*; public class UDPServerService { /** * @param args the command line arguments */ public static void main(String[] args) throws SQLException { // TODO code application logic here // if(args.length<1) // { // System.out.println("请输入用于mail服务的本地端口号"); // System.exit(0); // } int i=8000; // String s=Integer.toString(i); UDPServerThread myUDPServer=new UDPServerThread(8000);//创建邮件服务器监听线程 myUDPServer.init(); Thread th=new Thread(myUDPServer); th.start(); } } class UDPServerThread extends Frame implements Runnable { private DatagramSocket UDPServerSocket=null,UDPServerSocket1=null; PreparedStatement ps; TextArea ta=new TextArea(10,50); JButton close; Connection con; Statement stmt; ResultSet rs; String sql; int flag=0; int ports; void init(){ close=new JButton("close"); setTitle("服务监听器"); setSize(400,300); setLayout(new FlowLayout()); add("center",ta); add(close); close.addActionListener(new Close()); setVisible(true); } UDPServerThread(int Port){ ports=Port; try{ UDPServerSocket=new DatagramSocket(Port); UDPServerSocket1=new DatagramSocket(Port+1); ta.append("邮件服务监听器在端口"+UDPServerSocket.getLocalPort()+"\n"); }catch(Exception e){ System.err.println(e); } } public void run(){ if(UDPServerSocket==null) return; while(true){ try{ byte[] dataBuf=new byte[512]; DatagramPacket ServerPacket; InetAddress remoteHost; int remotePort; String datagram,s; ServerPacket =new DatagramPacket(dataBuf,512); UDPServerSocket.receive(ServerPacket);//接受 remoteHost=ServerPacket.getAddress(); remotePort=ServerPacket.getPort(); datagram=new String(ServerPacket.getData()); String sql="SELECT * FROM biao1"; try{ Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); con=DriverManager.getConnection("jdbc:ucanaccess://D:\\access\\db1.mdb","",""); stmt=con.createStatement(); rs=stmt.executeQuery(sql); }catch(Exception e1){ e1.printStackTrace(); } if(datagram.contains("#dl#")){ while(rs.next()){ //验证帐号密码是否正确 if((datagram.indexOf(rs.getString("username"))!=-1)&&(datagram.indexOf(rs.getString("password")))!=-1){ String pass="connect"; dataBuf=pass.getBytes(); ServerPacket=new DatagramPacket(dataBuf,dataBuf.length,remoteHost,remotePort); UDPServerSocket.send(ServerPacket); ta.append("用户"+remoteHost+"已登录"+'\n'); flag=1; sql="UPDATE biao1 SET connection=? WHERE username=?"; ps=con.prepareStatement(sql); ps.setInt(1,1); ps.setString(2, rs.getString("username")); ps.executeUpdate(); //表1中设置该用户为在线状态 sql="UPDATE biao1 SET remoteHost=? WHERE username=?"; ps=con.prepareStatement(sql); ps.setString(1,remoteHost.toString()); ps.setString(2, rs.getString("username")); ps.executeUpdate(); sql="UPDATE biao1 SET remotePort=? WHERE username=?"; ps=con.prepareStatement(sql); ps.setInt(1, remotePort); ps.setString(2, rs.getString("username")); ps.executeUpdate(); //修改表中用户的登录地址,登录端口 con.commit(); con.close(); } } if(flag==0){ String lost="lost"; dataBuf=lost.getBytes(); ServerPacket=new DatagramPacket(dataBuf,dataBuf.length,remoteHost,remotePort); UDPServerSocket.send(ServerPacket); } } else{ sql="SELECT * FROM biao1"; ResultSet rt; rt=stmt.executeQuery(sql); int port=0; //ta.append('\n'+"收到如下主机发来的邮件"+remoteHost.getHostName()+":\n"+datagram); while(rt.next()){ if(datagram.indexOf(rt.getString("username"))!=-1){ if(rt.getString("connection").indexOf("1")!=-1){ InetAddress remoteHost1=InetAddress.getByName(rt.getString("remoteHost").substring(1)); int remotePort1=rt.getInt("remotePort"); port=remotePort1+1; dataBuf=new byte[512]; dataBuf=datagram.getBytes(); System.out.print(datagram); ServerPacket=new DatagramPacket(dataBuf,dataBuf.length,remoteHost1,port); UDPServerSocket1.send(ServerPacket); } else{ datagram=new String("unconnect."); dataBuf=new byte[512]; //remoteHost=InetAddress.getByName("QH-20150828KDPO"); dataBuf=datagram.getBytes(); ServerPacket=new DatagramPacket(dataBuf,dataBuf.length,remoteHost,remotePort); UDPServerSocket.send(ServerPacket); } } } } }catch(Exception e){ System.err.println(e); } } } protected void finalize(){ if(UDPServerSocket!=null){ UDPServerSocket.close(); UDPServerSocket=null; ta.append("关闭服务器端的数据报连接!"); } } } class Close implements ActionListener{ public void actionPerformed(ActionEvent e){ System.exit(0); } } 客户端程序: import java.io.*; import java.net.*; import java.awt.*; import java.awt.event.*; import static java.lang.Thread.sleep; import java.util.Scanner; import java.sql.*; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.*; public class UDPClientService1 { /** * @param args the command line arguments */ public static void main(String[] args){ // TODO code application logic here Dl d=new Dl(args); } } class UDPClientService extends Frame implements ActionListener,Runnable{ DatagramSocket UDPClientSocket; DatagramPacket ClientPacket; InetAddress remoteHost; int remotePort; byte[] dataBuf; String datagram; private String send=""; String args[]=new String[3]; Scanner in; TextArea ta_receive=new TextArea(10,60),ta_send=new TextArea(5,60); JButton ok=new JButton("ok"),close =new JButton("close"),test=new JButton("test"); JPanel p3=new JPanel(),p1=new JPanel(),p2=new JPanel(); void Init_Frame(){ setTitle("服务器端口1"); setSize(500,450); setLayout(new BorderLayout()); ta_receive.setEditable(false); ta_send.requestFocus(); add(p1,BorderLayout.NORTH); add(p2,BorderLayout.CENTER); add(p3,BorderLayout.SOUTH); p1.add(ta_receive); p2.add(ta_send); p3.add(ok); p3.add(close); p3.add(test); ok.addActionListener(this); close.addActionListener(this); test.addActionListener(this); setVisible(true); } void Init(String args[]){ this.args=args; if(args.length<3){ ta_receive.append("请输入本地端口号,远程服务器主机号及端口名"); System.exit(0); } try{ UDPClientSocket =new DatagramSocket(Integer.valueOf(args[0])+1); remoteHost=InetAddress.getByName(args[1]); remotePort=Integer.parseInt(args[2]); }catch(Exception e){ System.err.println(e); } } public void run(){ while(true){ try { dataBuf=new byte[512]; ClientPacket=new DatagramPacket(dataBuf,512); UDPClientSocket.receive(ClientPacket);//接受 datagram=new String(ClientPacket.getData()); System.out.print(datagram); ta_receive.append('\n'+"Server:"+'\n'); ta_receive.append(" "+datagram+'\n'); } catch (IOException ex) { Logger.getLogger(UDPClientService.class.getName()).log(Level.SEVERE, null, ex); } } } public void actionPerformed(ActionEvent e){ if(e.getSource()==ok){ try{ in=new Scanner(ta_send.getText()); //int port=Integer.valueOf(args[0])+2; ta_receive.append('\n'+"Client:"+'\n'+""+ta_send.getText()+'\n'+'\n'); // UDPClientSocket1 =new DatagramSocket(port); datagram=send+in.nextLine(); dataBuf=datagram.getBytes(); ClientPacket=new DatagramPacket(dataBuf,dataBuf.length,remoteHost,remotePort); UDPClientSocket.send(ClientPacket);//发送 ta_send.setText(""); }catch(IOException e1){ System.err.println(e1); } } else if(e.getSource()==close){ dispose(); System.exit(0); } else if(e.getSource()==test){ send="lijing"; } } } class Dl extends Frame implements ActionListener{ JTextField t1=new JTextField(10),t2=new JTextField(10); JButton ok=new JButton("ok"),close=new JButton("close"); JLabel l=new JLabel("tips"),username1=new JLabel("username"),password1=new JLabel("password"); String args[]=new String[3]; Panel p1=new Panel(),p2=new Panel(),p3=new Panel(),p4=new Panel(); private String name,password,s; DatagramSocket UDPClientSocket; DatagramPacket ClientPacket; InetAddress remoteHost; int remotePort; byte[] dataBuf; String datagram; String flags="#dl#"; Dl(String args[]){ this.args=args; try{ UDPClientSocket =new DatagramSocket(Integer.parseInt(args[0])); remoteHost=InetAddress.getByName(args[1]); remotePort=Integer.parseInt(args[2]); }catch(Exception e){ System.err.println(e); } setLayout(new BorderLayout()); setSize(200,150); p1.add(username1); p1.add(t1); p1.add(password1); p1.add(t2); p1.add(ok); p1.add(close); p2.add(l); add(p1,BorderLayout.CENTER); add(p2,BorderLayout.SOUTH); ok.addActionListener(this); close.addActionListener(this); setVisible(true); } public void actionPerformed(ActionEvent e){ if(e.getSource()==ok){ try{ name=t1.getText(); password=t2.getText(); s=flags+name+password; dataBuf=s.getBytes(); ClientPacket=new DatagramPacket(dataBuf,dataBuf.length,remoteHost,remotePort); UDPClientSocket.send(ClientPacket);//发送 dataBuf=new byte[512]; ClientPacket=new DatagramPacket(dataBuf,512); UDPClientSocket.receive(ClientPacket);//接受 datagram=new String(ClientPacket.getData()); if(datagram.contains("connect")){ UDPClientService ucs=new UDPClientService(); ucs.Init_Frame(); ucs.Init(args); setVisible(false); Thread th=new Thread(ucs); th.start(); } else{ l.setText("error!!"); } }catch(IOException e1){ System.err.println(e1); } } else if(e.getSource()==close){ dispose(); System.exit(0); } } }

在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); } }); } } } ```

如何初始化JTextField以及如何使用JTextField中的selectAll方法

先列出代码 import javax.swing.*; import java.awt.*; import java.awt.event.*; public class JTextFieldGui{ JTextField textField; JLabel labelInput; JLabel labelOutput; public static void main(String[] args) { JTextFieldGui gui = new JTextFieldGui(); gui.go(); } public void go(){ JFrame frame = new JFrame(); JPanel panelInput = new JPanel(); JPanel panelOutput = new JPanel(); labelInput = new JLabel("Your first name: "); labelOutput = new JLabel("Enter your name, and you will see it here."); textField = new JTextField(20);//<---问题1 JButton enter = new JButton("Enter"); JButton selectAll = new JButton("Select all text"); frame.setSize(300,200); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); panelInput.setLayout(new BoxLayout(panelInput, BoxLayout.X_AXIS)); textField.addActionListener(new LabelActionListener()); enter.addActionListener(new LabelActionListener()); selectAll.addActionListener(new TextFieldActionlistener()); frame.getContentPane().add(BorderLayout.NORTH, panelInput); panelInput.add(labelInput); panelInput.add(textField); panelInput.add(enter); panelInput.add(selectAll); frame.getContentPane().add(BorderLayout.CENTER, panelOutput); panelOutput.add(labelOutput); } class LabelActionListener implements ActionListener{ public void actionPerformed(ActionEvent event){ labelOutput.setText(textField.getText()); } } class TextFieldActionlistener implements ActionListener{ public void actionPerformed(ActionEvent event){ textField.selectAll();//<---问题2 } } } 问题1:已经定义了textfield的大小为20列,但是,结果还是会占满整行 问题2:创建并监听了一个按钮selectall,用于全选textfield中的字符,但是并没有反应,是什么原因呢 问题3:另外之前还有个莫名其妙的错误,现在又没有了,无法将类 JTextField中的构造器 JTextField应用到给定类型,下面还有几行,写的是,需要:没有参数,总之就是说JTextField(int)是错误的 求指教!!!

我编了一段用户登录的框架组,eclipse运行没反应

import java.awt.*; import javax.swing.*; import java.util.*; class PassWord extends JFrame { JTextField jte=new JTextField();//设置账号文本框 JPasswordField pw=new JPasswordField();//设置密码文本框 JButton b1=new JButton("登陆"); JButton b2=new JButton("退出"); public void PassWord() {//创建一个PassWord方法 setBounds(25,25,250,250); Container c=getContentPane();//取得容器面板. c.setLayout(new GridLayout(4,2,10,10));//设置一个GridLayout布局管理器. c.add(new Label("账号"));//创建用户账号标签. c.add(jte); c.add(new Label("密码"));//创建用户密码标签. c.add(pw); c.add(b1); c.add(b2); setDefaultCloseOperation(EXIT_ON_CLOSE); setVisible(true); b2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0);//设置动作监听器,控制按钮b2以退出. } }); b1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String user=jte.getText(); String pass=pw.getText(); if(user.equals("2016070030313")&&pass.equals("0313")) { System.out.println("登陆成功!"); }else { System.out.println("登陆失败,账号密码错误!"); } } }); } } public class test{ public static void main(String[] args) { // TODO Auto-generated method stub JFrame frame=new JFrame("啪啪酒店系统桂林地区版");//创建一个JFrame的实例. frame.setSize(600, 600); new PassWord(); } }

defaulttablemodel 刷新数据库里的数据

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

eclipse连接数据库登录不上

package com.zyp; import java.awt.event.*; import javax.swing.*; import java.awt.*; import java.util.*; import java.sql.*; class Login extends JFrame implements ActionListener { Container cp=null; JFrame f=null; JButton j1,j2; JTextField t1; JPasswordField t2; JLabel jlable1,jlable2; Color c; JPanel jp1,jp2; Login(){ f=new JFrame("图书管理系统"); j1=new JButton("确定"); j2=new JButton("取消"); cp=f.getContentPane(); jlable1=new JLabel(" 用户名"); jlable2=new JLabel(" 密码"); jp1=new JPanel(); jp2=new JPanel(); t1=new JTextField(18); t2=new JPasswordField(18); jp1.add(jlable1); jp1.add(t1); jp1.add(jlable2); jp1.add(t2); JLabel JL=new JLabel("<html><font color=#CC00FF size='7'><i>欢迎登陆</i></font>",SwingConstants.CENTER); cp.add(JL,"North"); jp2.add(j1); jp2.add(j2); cp.add(jp1,"Center"); cp.add("South",jp2); jp1.setBackground(new Color(255,153,255)); Toolkit kit=Toolkit.getDefaultToolkit(); //当需要解释类型、方法或构造方法的一般签名信息的反射方法遇到语法错误的签名属性时,抛出该错误。 Dimension screen=kit.getScreenSize(); int x=screen.width; /*取得显示器窗口的宽度*/ int y=screen.height; /*取得显示器窗口的高度*/ //setSize(x,y); /*让系统窗口平铺整个显示器窗口*/ f.setSize(300,300); int xcenter=(x-300)/2; int ycenter=(y-300)/2; f.setLocation(xcenter,ycenter);/*显示在窗口中央*/ f.setVisible(true); j1.addActionListener(this);//注册事件监听器 j2.addActionListener(this); f.addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ System.exit(0); } } ); } public void confirm()//验证用户和密码是否存在 { Connection con = null; try{ Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); }catch(ClassNotFoundException e){System.out.println("加载驱动程序失败!");} try{ String url = "jdbc:sqlserver://localhost:1433;databasename=model";//直接使用当前类目录下的数据库文件 String user="sa"; String password ="ss"; con =DriverManager.getConnection(url, user, password); //JDBC中已经有多个驱动,此句话是遍历系统中已经注册的驱动程序,直到找到一个正确的驱动程序。 // Statement sql=con.createStatement(); String uname=t1.getText().trim(); String Mima=t2.getText().trim(); // String queryMima="select * from [book] where 用户名='"+uname+"' and 密码='"+Mima+"'"; String queryMima="select * from [book]"; PreparedStatement sql=con.prepareStatement(queryMima); // ResultSet rs=sql.executeQuery(queryMima); ResultSet rs=sql.executeQuery(); while(rs.next()) { if(rs.getString(1).trim().equals(uname)&&rs.getString(2).trim().equals(Mima)) { if(rs.getString(3).trim().equals("1")) { new Book(uname); f.hide(); return; } else{ new book1(uname); f.hide(); return; } } } con.close(); { JOptionPane.showMessageDialog(null,"该用户不存在","提示!", JOptionPane.YES_NO_OPTION); } t1.setText(""); t2.setText(""); } catch(SQLException g) { System.out.println("E Code "+g.getErrorCode()); System.out.println("E M"+g.getMessage()); } } public void actionPerformed(ActionEvent e) { String cmd=e.getActionCommand(); if(cmd.equals("确定")){ confirm(); } else if(cmd.equals("取消")){ f.dispose(); } } public static void main(String []arg){ Login a=new Login(); } }![图片](https://img-ask.csdn.net/upload/201612/05/1480927391_832086.png)

构造的方法在main外无法执行如何解决

我是java初学者 我想在button的响应中,登录成功后跳转到birdgame的页面,但是panel中的action方法只能在main方法中执行才有效,在button响应的方法里new birdframe时action不能正常执行,点击界面没反应,请问应该如何修改这个代码 出问题的代码如下 login页面 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; public class Login extends JFrame implements ActionListener{ String username="a"; String password="a"; BirdPanel panel; JFrame loginframe; JLabel label1,label2; JTextField user; JPasswordField pass; JPanel jp1,jp2,jp3; JButton jb; public Login(){ super("登录"); loginframe=new JFrame(); label1 = new JLabel("姓名"); label2 = new JLabel("密码"); user = new JTextField("a", 10); pass = new JPasswordField("a", 10); jp1 = new JPanel(); jp2 = new JPanel(); jp3 = new JPanel(); jb = new JButton("登录"); panel = new BirdPanel(); } public void init(){ //setLayout设置为null即为清空布局管理器,允许组件自由布局 loginframe.setLayout(null); loginframe.setSize(432,674); loginframe.setLocationRelativeTo(null); loginframe.setVisible(true); loginframe.setResizable(false); loginframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); loginframe.add(jb); jp1.add(label1); jp1.add(user); jp1.setBounds(0,150,432,50); jp2.add(label2); jp2.add(pass); jp2.setBounds(0, 225, 432, 50); jp3.add(jb); jp3.setBounds(0,300,432,50); loginframe.add(jp1); loginframe.add(jp2); loginframe.add(jp3); jb.addActionListener(this); } public static void main(String[] args) { new Login().init(); // BirdFrame.main(args); // BirdFrame frame = new BirdFrame(); // frame.init(); // frame.panel.action(); } @Override public void actionPerformed(ActionEvent e) { if(username.equals(user.getText()) && password.equals(pass.getText())){ JOptionPane.showMessageDialog(null,"登录成功!", "提示", JOptionPane.INFORMATION_MESSAGE); //关闭登录窗口 loginframe.dispose(); // BirdFrame birdframe = new BirdFrame(); // birdframe.init(); // birdframe.panel.action(); }else{ //输入错误时报错并清空输入框 JOptionPane.showMessageDialog(null, "错误", "提示", JOptionPane.ERROR_MESSAGE); user.setText(""); pass.setText(""); } } } 游戏窗口页面 import javax.swing.JFrame; public class BirdFrame extends JFrame{ //定义游戏面板 BirdPanel panel ; //构造方法,初始化窗体属性 public BirdFrame(){ //创建面板对象 panel = new BirdPanel(); } public void init(){ this.setTitle("笨鸟"); this.setSize(432,674); //设置位置(据中) this.setLocationRelativeTo(null); //设置不允许改变窗体大小 this.setResizable(false); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); this.add(panel); } public static void main(String[] args) { BirdFrame frame = new BirdFrame(); frame.init(); } } 游戏面板页面 import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.image.BufferedImage; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.JPanel; public class BirdPanel extends JPanel implements MouseListener{ Colum c1,c2;//定义两个柱子 BufferedImage background;//背景图片 BufferedImage startImage;//开始图片 BufferedImage overImage;//结束图片 Ground ground;//定义地板对象 Bird bird;//定义鸟对象 int score;//分数 boolean gameover;//判断游戏是否结束的boolean数 boolean start;// 判断游戏是否开始的boolean数 public BirdPanel(){ c1 = new Colum(1);//第一根柱子 c2 = new Colum(2); ground = new Ground(); bird = new Bird(); try { background = ImageIO.read(this.getClass().getResource("/img/bg.png")); startImage = ImageIO.read(this.getClass().getResource("/img/start.png")); overImage = ImageIO.read(this.getClass().getResource("/img/gameover.png")); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //将监听器添加到面板中 this.addMouseListener(this); } //加@Override重写paint同名函数 @Override public void paint(Graphics g){ super.paint(g); //drawImage(image img,x,y,ImageObserver observer); //drawImage(图像对象,x位置,y位置,异步信息通知的对象 g.drawImage(background, 0, 0, null);//画背景图片 if(!start){ //游戏没开始的话就画开始图片 g.drawImage(startImage,0,0,null); } //先画哪个哪个就在下面 //画柱子 g.drawImage(c1.img,c1.x-c1.width/2,c1.y-c1.height/2,null); g.drawImage(c2.img,c2.x-c2.width/2,c2.y-c2.height/2,null); //画鸟 g.drawImage(bird.img,bird.x-bird.width/2,bird.y-bird.height/2, null); //画地板 g.drawImage(ground.img, ground.x, ground.y, null); //设置界面中文字格式 Font font=new Font("楷体",Font.BOLD,30); g.setFont(font); g.setColor(Color.white); //画界面分数 g.drawString("分数:" + score, 10, 30); //判断游戏是否结束,如果gameover传入true则结束 if(gameover){ g.drawImage(overImage, 0, 0, null); } } @Override public void mousePressed(MouseEvent e) { if(gameover){ //如果游戏结束 //重新启动游戏 reStart(); }else{ //游戏没结束 //游戏开始 start = true; bird.flappy(); } } public void action(){ //一直刷新界面 while(true){ if(!gameover){ if(start){ //如果游戏没有结束,并且游戏开始了 //让地板移动 ground.setup(); //让鸟飞 bird.setup(); bird.fly(); //让主子移动 c1.setup(); c2.setup(); //增加难度,让第二根柱子上下移动 //c2.setupY(); } //穿过一个柱子得一分 if(bird.x==c1.x || bird.x==c2.x){ score ++; } } //如果鸟撞击柱子或者地面,游戏结束 if(bird.hit(c1)||bird.hit(c2)||bird.hit(ground)){ gameover = true;//游戏结束 } this.repaint(); try { Thread.sleep(10); } catch (InterruptedException e1) { e1.printStackTrace(); } } } public void reStart(){ c1 = new Colum(1); c2 = new Colum(2); ground = new Ground(); bird = new Bird(); start = false; gameover =false; score = 0; } @Override public void mouseClicked(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseEntered(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseExited(MouseEvent e) { // TODO Auto-generated method stub } @Override public void mouseReleased(MouseEvent e) { // TODO Auto-generated method stub } }

C/C++学习指南全套教程

C/C++学习的全套教程,从基本语法,基本原理,到界面开发、网络开发、Linux开发、安全算法,应用尽用。由毕业于清华大学的业内人士执课,为C/C++编程爱好者的教程。

定量遥感中文版 梁顺林著 范闻捷译

这是梁顺林的定量遥感的中文版,由范闻捷等翻译的,是电子版PDF,解决了大家看英文费时费事的问题,希望大家下载看看,一定会有帮助的

YOLOv3目标检测实战:训练自己的数据集

YOLOv3是一种基于深度学习的端到端实时目标检测方法,以速度快见长。本课程将手把手地教大家使用labelImg标注和使用YOLOv3训练自己的数据集。课程分为三个小项目:足球目标检测(单目标检测)、梅西目标检测(单目标检测)、足球和梅西同时目标检测(两目标检测)。 本课程的YOLOv3使用Darknet,在Ubuntu系统上做项目演示。包括:安装Darknet、给自己的数据集打标签、整理自己的数据集、修改配置文件、训练自己的数据集、测试训练出的网络模型、性能统计(mAP计算和画出PR曲线)和先验框聚类。 Darknet是使用C语言实现的轻型开源深度学习框架,依赖少,可移植性好,值得深入探究。 除本课程《YOLOv3目标检测实战:训练自己的数据集》外,本人推出了有关YOLOv3目标检测的系列课程,请持续关注该系列的其它课程视频,包括: 《YOLOv3目标检测实战:交通标志识别》 《YOLOv3目标检测:原理与源码解析》 《YOLOv3目标检测:网络模型改进方法》 敬请关注并选择学习!

sql语句 异常 Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your

在我们开发的工程中,有时候会报 [Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ------ 这种异常 不用多想,肯定是我们的sql语句出现问题,下面...

浪潮集团 往年的软件类 笔试题 比较详细的哦

浪潮集团 往年的软件类 笔试题 比较详细的哦

2019 AI开发者大会

2019 AI开发者大会(AI ProCon 2019)是由中国IT社区CSDN主办的AI技术与产业年度盛会。多年经验淬炼,如今蓄势待发:2019年9月6-7日,大会将有近百位中美顶尖AI专家、知名企业代表以及千余名AI开发者齐聚北京,进行技术解读和产业论证。我们不空谈口号,只谈技术,诚挚邀请AI业内人士一起共铸人工智能新篇章!

I2c串口通信实现加速度传感器和FPGA的交流

此代码能实现加速度传感器与FPGA之间的交流,从而测出运动物体的加速度。

Python可以这样学(第一季:Python内功修炼)

董付国系列教材《Python程序设计基础》、《Python程序设计(第2版)》、《Python可以这样学》配套视频,讲解Python 3.5.x和3.6.x语法、内置对象用法、选择与循环以及函数设计与使用、lambda表达式用法、字符串与正则表达式应用、面向对象编程、文本文件与二进制文件操作、目录操作与系统运维、异常处理结构。

微信公众平台开发入门

本套课程的设计完全是为初学者量身打造,课程内容由浅入深,课程讲解通俗易懂,代码实现简洁清晰。通过本课程的学习,学员能够入门微信公众平台开发,能够胜任企业级的订阅号、服务号、企业号的应用开发工作。 通过本课程的学习,学员能够对微信公众平台有一个清晰的、系统性的认识。例如,公众号是什么,它有什么特点,它能做什么,怎么开发公众号。 其次,通过本课程的学习,学员能够掌握微信公众平台开发的方法、技术和应用实现。例如,开发者文档怎么看,开发环境怎么搭建,基本的消息交互如何实现,常用的方法技巧有哪些,真实应用怎么开发。

机器学习初学者必会的案例精讲

通过六个实际的编码项目,带领同学入门人工智能。这些项目涉及机器学习(回归,分类,聚类),深度学习(神经网络),底层数学算法,Weka数据挖掘,利用Git开源项目实战等。

eclipseme 1.7.9

eclipse 出了新的eclipseme插件,官方有下载,但特慢,我都下了大半天(可能自己网速差)。有急需要的朋友可以下哦。。。

Spring Boot -01- 快速入门篇(图文教程)

Spring Boot -01- 快速入门篇 今天开始不断整理 Spring Boot 2.0 版本学习笔记,大家可以在博客看到我的笔记,然后大家想看视频课程也可以到【慕课网】手机 app,去找【Spring Boot 2.0 深度实践】的课程,令人开心的是,课程完全免费! 什么是 Spring Boot? Spring Boot 是由 Pivotal 团队提供的全新框架。Spring Boot...

HoloLens2开发入门教程

本课程为HoloLens2开发入门教程,讲解部署开发环境,安装VS2019,Unity版本,Windows SDK,创建Unity项目,讲解如何使用MRTK,编辑器模拟手势交互,打包VS工程并编译部署应用到HoloLens上等。

最简单的倍频verilog程序(Quartus II)

一个工程文件 几段简单的代码 一个输入一个输出(50Mhz倍频到100Mhz)

计算机组成原理实验教程

西北工业大学计算机组成原理实验课唐都仪器实验帮助,同实验指导书。分为运算器,存储器,控制器,模型计算机,输入输出系统5个章节

4小时玩转微信小程序——基础入门与微信支付实战

这是一个门针对零基础学员学习微信小程序开发的视频教学课程。课程采用腾讯官方文档作为教程的唯一技术资料来源。杜绝网络上质量良莠不齐的资料给学员学习带来的障碍。 视频课程按照开发工具的下载、安装、使用、程序结构、视图层、逻辑层、微信小程序等几个部分组织课程,详细讲解整个小程序的开发过程

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

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

基于RSA通信密钥分发的加密通信

基于RSA通信密钥分发的加密通信,采用pycrypto中的RSA、AES模块实现

不同变质程度煤尘爆炸残留气体特征研究

为分析不同变质程度煤尘爆炸残留气体成分的特征规律,利用水平管道煤尘爆炸实验装置进行了贫瘦煤、肥煤、气煤、长焰煤4种不同变质程度的煤尘爆炸实验,研究了不同变质程度煤尘爆炸后气体残留物含量的差异,并对气体

设计模式(JAVA语言实现)--20种设计模式附带源码

课程亮点: 课程培训详细的笔记以及实例代码,让学员开始掌握设计模式知识点 课程内容: 工厂模式、桥接模式、组合模式、装饰器模式、外观模式、享元模式、原型模型、代理模式、单例模式、适配器模式 策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式 课程特色: 笔记设计模式,用笔记串连所有知识点,让学员从一点一滴积累,学习过程无压力 笔记标题采用关键字标识法,帮助学员更加容易记住知识点 笔记以超链接形式让知识点关联起来,形式知识体系 采用先概念后实例再应用方式,知识点深入浅出 提供授课内容笔记作为课后复习以及工作备查工具 部分图表(电脑PC端查看):

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

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

软件测试2小时入门

本课程内容系统、全面、简洁、通俗易懂,通过2个多小时的介绍,让大家对软件测试有个系统的理解和认识,具备基本的软件测试理论基础。 主要内容分为5个部分: 1 软件测试概述,了解测试是什么、测试的对象、原则、流程、方法、模型;&nbsp; 2.常用的黑盒测试用例设计方法及示例演示;&nbsp; 3 常用白盒测试用例设计方法及示例演示;&nbsp; 4.自动化测试优缺点、使用范围及示例‘;&nbsp; 5.测试经验谈。

几率大的Redis面试题(含答案)

本文的面试题如下: Redis 持久化机制 缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题 热点数据和冷数据是什么 Memcache与Redis的区别都有哪些? 单线程的redis为什么这么快 redis的数据类型,以及每种数据类型的使用场景,Redis 内部结构 redis的过期策略以及内存淘汰机制【~】 Redis 为什么是单线程的,优点 如何解决redis的并发竞争key问题 Red...

手把手实现Java图书管理系统(附源码)

【超实用课程内容】 本课程演示的是一套基于Java的SSM框架实现的图书管理系统,主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的java人群。详细介绍了图书管理系统的实现,包括:环境搭建、系统业务、技术实现、项目运行、功能演示、系统扩展等,以通俗易懂的方式,手把手的带你从零开始运行本套图书管理系统,该项目附带全部源码可作为毕设使用。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27513 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程2年有效观看时长,大家可以抓紧时间学习后一起讨论哦~ 【学员专享增值服务】 源码开放 课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化

jsp+servlet入门项目实例

jsp+servlet实现班级信息管理项目

winfrom中嵌套html,跟html的交互

winfrom中嵌套html,跟html的交互,源码就在里面一看就懂,很简单

Java面试题大全(2020版)

发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境。 JRE:Java Runtime Environ...

python实现数字水印添加与提取及鲁棒性测试(GUI,基于DCT,含测试图片)

由python写的GUI,可以实现数字水印的添加与提取,提取是根据添加系数的相关性,实现了盲提取。含有两种攻击测试方法(高斯低通滤波、高斯白噪声)。基于python2.7,watermark.py为主

Xshell6完美破解版,亲测可用

Xshell6破解版,亲测可用,分享给大家。直接解压即可使用

你连存活到JDK8中著名的Bug都不知道,我怎么敢给你加薪

CopyOnWriteArrayList.java和ArrayList.java,这2个类的构造函数,注释中有一句话 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 public ArrayList(Collection&lt;? ...

程序员的算法通关课:知己知彼(第一季)

【超实用课程内容】 程序员对于算法一直又爱又恨!特别是在求职面试时,算法类问题绝对是不可逃避的提问点!本门课程作为算法面试系列的第一季,会从“知己知彼”的角度,聊聊关于算法面试的那些事~ 【哪些人适合学习这门课程?】 求职中的开发者,对于面试算法阶段缺少经验 想了解实际工作中算法相关知识 在职程序员,算法基础薄弱,急需充电 【超人气讲师】 孙秀洋&nbsp;| 服务器端工程师 硕士毕业于哈工大计算机科学与技术专业,ACM亚洲区赛铜奖获得者,先后在腾讯和百度从事一线技术研发,对算法和后端技术有深刻见解。 【课程如何观看?】 PC端:https://edu.csdn.net/course/detail/27272 移动端:CSDN 学院APP(注意不是CSDN APP哦) 本课程为录播课,课程无限观看时长,但是大家可以抓紧时间学习后一起讨论哦~

DirectX修复工具V4.0增强版

DirectX修复工具(DirectX Repair)是一款系统级工具软件,简便易用。本程序为绿色版,无需安装,可直接运行。 本程序的主要功能是检测当前系统的DirectX状态,如果发现异常则进行修复

相关热词 c#框体中的退出函数 c# 按钮透明背景 c# idl 混编出错 c#在位置0处没有任何行 c# 循环给数组插入数据 c# 多线程死锁的例子 c# 钉钉读取员工排班 c# label 不显示 c#裁剪影像 c#工作进程更新ui
立即提问