java中怎么根据jtable的内容作出各种统计图

java jrame查询获得张jtable表请问怎么根据jtable的内容作出各种统计图

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
[java] jtable更新数据的问题
package bms; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import java.awt.BorderLayout; import javax.swing.border.TitledBorder; import javax.swing.UIManager; import java.awt.Color; import java.awt.GridBagLayout; import java.awt.GridBagConstraints; import javax.swing.JTextField; import java.awt.Insets; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.util.Vector; import javax.swing.JLabel; import javax.swing.JButton; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; public class test extends JFrame { static Vector<String> columnNames=new Vector<String>(); static Vector cellData=new Vector(); JPanel panel = new JPanel(); JTable table = new JTable(cellData,columnNames); private JScrollPane jsp=new JScrollPane(table); private JTextField textField; private JTextField textField_1; private JTextField textField_2; static database db=new database(); static ResultSet res=null; private JTextField textField_3; public static void main(String[] args) { update("*"); test window = new test(); window.setVisible(true); } public static void update(String temp) { columnNames.clear(); cellData.clear(); ResultSetMetaData rsmd; try{ res=db.sta.executeQuery("select "+temp+" from Books"); rsmd=res.getMetaData(); for (int i = 1; i <= rsmd.getColumnCount(); ++i) columnNames.addElement(rsmd.getColumnName(i));//存储名字 while (res.next()) { Vector<String> currow = new Vector<String>(); for (int i = 1; i <= rsmd.getColumnCount(); ++i) { currow.addElement(res.getString(i)); } cellData.addElement(currow); } }catch(SQLException e) { e.printStackTrace(); } } public test() { setTitle("Book Management System"); this.setBounds(100,100, 800,600); GridBagLayout gridBagLayout = new GridBagLayout(); gridBagLayout.columnWidths = new int[]{0, 0}; gridBagLayout.rowHeights = new int[]{325, 0, 0}; gridBagLayout.columnWeights = new double[]{1.0, Double.MIN_VALUE}; gridBagLayout.rowWeights = new double[]{0.0, 1.0, Double.MIN_VALUE}; getContentPane().setLayout(gridBagLayout); GridBagConstraints gbc_panel = new GridBagConstraints(); gbc_panel.insets = new Insets(0, 0, 5, 0); gbc_panel.fill = GridBagConstraints.BOTH; gbc_panel.gridx = 0; gbc_panel.gridy = 0; panel.setBorder(new TitledBorder(null, "图书目录:", TitledBorder.LEFT, TitledBorder.TOP, null, null)); getContentPane().add(panel, gbc_panel); panel.setLayout(new BorderLayout(0, 0)); panel.add(jsp); JPanel panel_1 = new JPanel(); panel_1.setBorder(new TitledBorder(UIManager.getBorder("TitledBorder.border"), "检索 增加", TitledBorder.LEADING, TitledBorder.TOP, null, new Color(0, 0, 0))); GridBagConstraints gbc_panel_1 = new GridBagConstraints(); gbc_panel_1.fill = GridBagConstraints.BOTH; gbc_panel_1.gridx = 0; gbc_panel_1.gridy = 1; getContentPane().add(panel_1, gbc_panel_1); GridBagLayout gbl_panel_1 = new GridBagLayout(); gbl_panel_1.columnWidths = new int[]{0, 0, 126, 0, 0, 136, 78, 98, 0, 0}; gbl_panel_1.rowHeights = new int[]{0, 0, 0, 0, 0, 0, 0}; gbl_panel_1.columnWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, Double.MIN_VALUE}; gbl_panel_1.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, Double.MIN_VALUE}; panel_1.setLayout(gbl_panel_1); JLabel lblNewLabel = new JLabel("书名:"); GridBagConstraints gbc_lblNewLabel = new GridBagConstraints(); gbc_lblNewLabel.insets = new Insets(0, 0, 5, 5); gbc_lblNewLabel.gridx = 1; gbc_lblNewLabel.gridy = 1; panel_1.add(lblNewLabel, gbc_lblNewLabel); textField = new JTextField(); GridBagConstraints gbc_textField = new GridBagConstraints(); gbc_textField.insets = new Insets(0, 0, 5, 5); gbc_textField.fill = GridBagConstraints.BOTH; gbc_textField.gridx = 2; gbc_textField.gridy = 1; panel_1.add(textField, gbc_textField); textField.setColumns(10); JLabel label = new JLabel("作者:"); GridBagConstraints gbc_label = new GridBagConstraints(); gbc_label.anchor = GridBagConstraints.EAST; gbc_label.insets = new Insets(0, 0, 5, 5); gbc_label.gridx = 4; gbc_label.gridy = 1; panel_1.add(label, gbc_label); textField_3 = new JTextField(); GridBagConstraints gbc_textField_3 = new GridBagConstraints(); gbc_textField_3.insets = new Insets(0, 0, 5, 5); gbc_textField_3.fill = GridBagConstraints.BOTH; gbc_textField_3.gridx = 5; gbc_textField_3.gridy = 1; panel_1.add(textField_3, gbc_textField_3); textField_3.setColumns(10); JLabel lblNewLabel_1 = new JLabel("图书室:"); GridBagConstraints gbc_lblNewLabel_1 = new GridBagConstraints(); gbc_lblNewLabel_1.insets = new Insets(0, 0, 5, 5); gbc_lblNewLabel_1.gridx = 1; gbc_lblNewLabel_1.gridy = 3; panel_1.add(lblNewLabel_1, gbc_lblNewLabel_1); textField_1 = new JTextField(); GridBagConstraints gbc_textField_1 = new GridBagConstraints(); gbc_textField_1.insets = new Insets(0, 0, 5, 5); gbc_textField_1.fill = GridBagConstraints.HORIZONTAL; gbc_textField_1.gridx = 2; gbc_textField_1.gridy = 3; panel_1.add(textField_1, gbc_textField_1); textField_1.setColumns(10); JButton button = new JButton("检索"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { update("Book_Name"); db.close(); } }); GridBagConstraints gbc_button = new GridBagConstraints(); gbc_button.fill = GridBagConstraints.BOTH; gbc_button.insets = new Insets(0, 0, 5, 5); gbc_button.gridx = 7; gbc_button.gridy = 1; panel_1.add(button, gbc_button); JButton button_1 = new JButton("返回"); button_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { } }); GridBagConstraints gbc_button_1 = new GridBagConstraints(); gbc_button_1.fill = GridBagConstraints.BOTH; gbc_button_1.insets = new Insets(0, 0, 5, 5); gbc_button_1.gridx = 7; gbc_button_1.gridy = 3; panel_1.add(button_1, gbc_button_1); JLabel lblNewLabel_2 = new JLabel("出版社:"); GridBagConstraints gbc_lblNewLabel_2 = new GridBagConstraints(); gbc_lblNewLabel_2.insets = new Insets(0, 0, 0, 5); gbc_lblNewLabel_2.gridx = 1; gbc_lblNewLabel_2.gridy = 5; panel_1.add(lblNewLabel_2, gbc_lblNewLabel_2); textField_2 = new JTextField(); GridBagConstraints gbc_textField_2 = new GridBagConstraints(); gbc_textField_2.insets = new Insets(0, 0, 0, 5); gbc_textField_2.fill = GridBagConstraints.HORIZONTAL; gbc_textField_2.gridx = 2; gbc_textField_2.gridy = 5; panel_1.add(textField_2, gbc_textField_2); textField_2.setColumns(10); } } ``` ``` 这是我的代码。。我想在调用update()的时时候实现table内容的变更,但是现在实现不了,总是变化不了。。。 我试过在监听器updata("Book_Name")后面加上table.updateUI();,但是会报错:Exception in thread "AWT-EventQueue-0" java.lang.ArrayIndexOutOfBoundsException: 1 >= 1 求大神啊。。应该怎么解决啊。。
java如何刷新JTable显示内容
在第一次取回数据库内容并显示后 再取得另一些数据刷新表格内容无法显示 用frame.repaint()并没有用 该怎么办
java swing中的JTable问题
![图片说明](https://img-ask.csdn.net/upload/201412/25/1419512575_642384.png) 我的问题是这样的: 我想在这个界面中同时实现增删改查的功能,现在还差改的功能。 我想在JTable中双击某个单元格,修改某个值后以实现改的功能, 现在我没法把修改后的某条通讯录信息重新写入文件,写入文件的方法是用object流, 我想问这该怎么实现 先谢谢各位大神了!!
java 中用defaulttablemodel 给JTable制作表头
大家好,本人小白一名,在看书的时候遇到了操作不出效果的,想请教一下大家伙: 我想给JTable添加表头,用到了DefaultTableModel。 教材的例子是这样来实现的(其他部分省略了): ``` tabletest = new JTable(); //定义列名 String[]names={"星期一","星期二","星期三","星期四","星期五","星期六","星期七"}; DefaultTableModel model = new DfaultTableModel(names,15); tabletest.setModel(model); ``` 我发现运行出来的效果是没有表头的,也没有任何的错误信息,如下: ![图片说明](https://img-ask.csdn.net/upload/201702/16/1487227385_42066.jpg) 当我去翻了DefaualtTableModel的[中文文档[](http://www.apihome.cn/api/java/DefaultTableModel.html "")](http://www.apihome.cn/api/java/DefaultTableModel.html "")后,发现,这种写法,是获取names的数量作为列的数量,没有设置表头。 于是我换用DefaultTableModel(内容,表头)的方式,如下: ``` tabletest = new JTable(); //定义列名 String[]names={"星期一","星期二","星期三","星期四","星期五","星期六","星期七"}; String[][]content=new String[15][7]; DefaultTableModel model = new DfaultTableModel(content,names); tabletest.setModel(model); ``` 最后运行的效果图和之前的是一样的,均没有表头。 但是,在eclipse上,JTable控件的model属性中,是这样的: ![图片说明](https://img-ask.csdn.net/upload/201702/16/1487228223_340690.jpg) 想请教一个各位大大,这种运行结果没表头,也没报错,是我哪儿没有设置对,让表头显示出来么? 十分谢谢~ 希望能找到这种显示的原因~
java中Jtable显示数据库查询到的数据
怎么在Jtable中显示从数据库中查询到的结果集,用什么方法,新手请教
Java中如何根据我点击的按钮呈现不同的JTable样式(一个JFrame中)?
我现在的需求是,通过点击上面不同的按钮,下方出现对应的表格。 ![界面](https://img-ask.csdn.net/upload/201704/28/1493348600_808384.png) 界面程序代码:首先初始化了一个表格 ``` // 图表窗口 public void tableInformation() { JPanel toolBar = new JPanel(); toolBar.add(this.loadFileBtn); toolBar.add(this.transferBtn); toolBar.add(this.selectBtn); toolBar.add(this.functionNumBtn); toolBar.add(this.scoreBtn); toolBar.add(this.noScoreBtn); this.add(toolBar, BorderLayout.NORTH); this.loadFileBtn.addActionListener(this); this.transferBtn.addActionListener(this); this.selectBtn.addActionListener(this); this.functionNumBtn.addActionListener(this); this.scoreBtn.addActionListener(this); this.noScoreBtn.addActionListener(this); this.tableModel = new DefaultTableModel(new UserList().userInfo, new UserList().titles); this.table = new JTable(this.tableModel); table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); table.setPreferredScrollableViewportSize(new Dimension(150, 0)); table.getTableHeader().setReorderingAllowed(false); table.enable(false); JScrollPane scr = new JScrollPane(this.table); this.add(scr, BorderLayout.CENTER); this.remove(scr); // while (this.tableModel.getRowCount() > 0) { this.tableModel.removeRow(this.tableModel.getRowCount() - 1); } } ``` 现在我想做的是:当点击“统计操作数”按钮时,会出现另一个表格样式 按钮代码: ``` else if (e.getSource() == this.functionNumBtn) { //这里如何写? } ``` 补充数据源代码: ``` class UserList extends AbstractTableModel { public String[] titles = { "username", "udate", "utime", "tcode" }; public Object[][] userInfo = {}; // public int getRowCount() { return 0; } public int getColumnCount() { return 0; } // @Override public Object getValueAt(int arg0, int arg1) { return null; } } ``` 请教如何做?(代码中的空格部分)
java中JTable的问题,求解,大神在哪里
import java.sql.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class a160407 extends JFrame implements ActionListener{ JButton anl1,anl2,anl3,anl4; JLabel bq; JTextField wbk; JPanel mb1,mb2; JTable bg; JScrollPane gd; aaaa aa; public static void main(String[] args){ a160407 aaa=new a160407(); } public a160407(){ anl1=new JButton("查询"); anl1.addActionListener(this); anl1.setActionCommand("chaxun"); anl2=new JButton("添加"); anl2.addActionListener(this); anl2.setActionCommand("tianjia"); anl3=new JButton("删除"); anl3.addActionListener(this); anl3.setActionCommand("shanchu"); anl4=new JButton("修改"); anl4.addActionListener(this); anl4.setActionCommand("xiugai"); bq=new JLabel("请输入姓名"); wbk=new JTextField(7); mb1=new JPanel(); mb2=new JPanel(); aa=new aaaa(); bg=new JTable(aa); gd=new JScrollPane(bg); mb1.setLayout(new FlowLayout());mb1.add(bq);mb1.add(wbk);mb1.add(anl1); mb2.setLayout(new FlowLayout());mb2.add(anl2);mb2.add(anl3);mb2.add(anl4); this.add(mb1,BorderLayout.NORTH); this.add(mb2,BorderLayout.SOUTH); this.add(gd); this.setResizable(false); this.setSize(800,600); this.setLocation(300,150); this.setTitle("QQ联系人"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setVisible(true); } public void actionPerformed(ActionEvent e){ if(e.getActionCommand().equals("chaxun")){ String xingming=this.wbk.getText().trim(); String sql="select * from QQ where xinmin='"+xingming+"'"; aa=new aaaa(sql); bg.setModel(aa); } else if(e.getActionCommand().equals("tianjia")){ tianjia tj=new tianjia(this,"信息添加",true); aa=new aaaa(); bg.setModel(aa); System.out.println("fffffffffffffff"); } else if(e.getActionCommand().equals("shanchu")){ int ii=this.bg.getSelectedRow(); if(ii==-1){ JOptionPane.showMessageDialog(this,"请选中要删除的行"); return; } 程序总是运行到下面的这句话出错???????????????????? String st=(String)aa.getValueAt(ii,0);我发现getValueAt(ii,0)中的0改成1或者其他不是0的数程序就正常了,请好心的大神把我解决一下! PreparedStatement ps=null; Connection ct=null; ResultSet rs=null; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); ct=DriverManager.getConnection("jdbc:odbc:SQL Sever","sa","923274995"); ps=ct.prepareStatement("delete from QQ where xinmin=?"); ps.setString(1,st); ps.executeUpdate(); }catch(Exception e2){} finally{ try { if(rs!=null) { rs.close(); } if(ps!=null) { ps.close(); } if(ct!=null) { ct.close(); } } catch (Exception e3){} }aa=new aaaa(); bg.setModel(aa); } else if(e.getActionCommand().equals("xiugai")){ int ii=this.bg.getSelectedRow(); if(ii==-1){ JOptionPane.showMessageDialog(this,"请选中要修改的行"); return; } new xiugai(this,"信息修改",true,aa,ii); } } } 要解决的问题在上面代码一排问号??????的下面
java中JTable如何用代码设置不随窗口变化而变化
在学习JTable时发现我的表格会随着JAVA窗口的变化而变化,想知道如何不让它 变化,也就是说如何让它固定化? 代码如下: package com.view; import java.awt.Color; import javax.swing.*; public class NewFrame extends JFrame { private String[] columnNames= { "Country","Capital","Population in Millions","Democracy" }; private Object[][] data= { {"USA","Washington DC",280,true}, {"Canada","Ottawa",32,true}, {"China","Beijing",1000,true}, {"Japan","Tokyo",50,true}, }; private JTable jTable1=new JTable(data,columnNames); public NewFrame() { jTable1.setBackground(Color.RED); add(new JScrollPane(jTable1)); } public static void main(String[]args) { NewFrame frame=new NewFrame(); frame.setSize(600, 400); frame.setLocationRelativeTo(null); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
关于java中卡片布局中插入JTable问题
在A面板中输入并添加数据到List,在B面板中按照JTable加以显示,这怎么做?求大神告知方法?
java swing的JTable中的某一列加入下拉复选框,选择的多个数据显示在单元格
java swing的JTable中的某一列加入下拉复选框, 点击单元格,出现下拉框,选择的多个数据显示在单元格? 效果图如下所示: ![图片说明](https://img-ask.csdn.net/upload/201901/25/1548384695_331151.png)
Java GUI如何将文件中的内容读入Jtable中
文件中有四列信息,分别是不同的数据类型,想要用DefaulttableModel读进去,但是构造函数需要一个二维数组以及一个一维数组,二维数组那个地方由于只能定义一种类型,但是需要的数据有多种类型,不知道应该怎样解决了
java如何把String数据添加到 JTable中 ?
我已经把String数据保存在了一个HashMap中,现在想把HashMap中的Key和Value(都是字符串)添加到JTable的对应单元格中,请问怎么做?
Java中JTable选中行问题
我有一个table,第一列是checkbox,我给table创建并实现了mouselistener监听器,然后想要实现点击checkbox时,选中checkbox所在的行。主要是我在此之前设置了table.setCellSelectionEnabled(true);使得我点击某个单元格,只有该单元格被选中。我要实现只有当点击了checkbox打勾之后,才选中一整行,其余情况下若点击,则只选中某个单元格。我要怎么实现呢。
java的JTable控件如何完成按下Enter键换列(不是换行)
各位大神们,我现在在做一个java的桌面应用程序,需要使用到JTable控件,需求就是,我按下Entert按键,焦点会focus到右列的单元格上,请问该如何实现啊
Java swing 里 Jtable表格里一列怎么变高啊
我需要显示图片,但是找了半天只找到修改宽度 ,我想让它变高一些
对数据库执行一个查询,把获得的结果集通过JTable显示,当查询变化时,如何使JTable的内容变化
对数据库执行一个查询,把获得的结果集通过JTable显示,当查询变化时,如何使JTable的显示内容随之变化。 <br /> <br />我查阅了一些资料,如果不是操作数据库,JTable的validate()和updateUI()可以更新JTable的显示内容,可对数据库操作时,这两个方法好像就不起作用了。
Swing JTable单元格ToolTipText如何根据单元格内容是否隐藏来显示?
通过重载jtable中的gettooltiptext()方法来完成鼠标悬浮提示的功能。这个已经做好。 jtable可以自由拖动列分割符,或者有些单元格内容过长,不完全显示内容,带省略号,如何检测到这个??? 我只需要针对内容未完成显示的单元格进行提示!
java swing jtable
小弟不才,才学swing [code="java"] /* * MySwingView.java */ package myswing; import org.jdesktop.application.Action; import org.jdesktop.application.ResourceMap; import org.jdesktop.application.SingleFrameApplication; import org.jdesktop.application.FrameView; import org.jdesktop.application.TaskMonitor; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.Timer; import javax.swing.Icon; import javax.swing.JDialog; import javax.swing.JFrame; /** * The application's main frame. */ public class MySwingView extends FrameView { public MySwingView(SingleFrameApplication app) { super(app); initComponents(); // status bar initialization - message timeout, idle icon and busy animation, etc ResourceMap resourceMap = getResourceMap(); int messageTimeout = resourceMap.getInteger("StatusBar.messageTimeout"); messageTimer = new Timer(messageTimeout, new ActionListener() { public void actionPerformed(ActionEvent e) { statusMessageLabel.setText(""); } }); messageTimer.setRepeats(false); int busyAnimationRate = resourceMap.getInteger("StatusBar.busyAnimationRate"); for (int i = 0; i < busyIcons.length; i++) { busyIcons[i] = resourceMap.getIcon("StatusBar.busyIcons[" + i + "]"); } busyIconTimer = new Timer(busyAnimationRate, new ActionListener() { public void actionPerformed(ActionEvent e) { busyIconIndex = (busyIconIndex + 1) % busyIcons.length; statusAnimationLabel.setIcon(busyIcons[busyIconIndex]); } }); idleIcon = resourceMap.getIcon("StatusBar.idleIcon"); statusAnimationLabel.setIcon(idleIcon); progressBar.setVisible(false); // connecting action tasks to status bar via TaskMonitor TaskMonitor taskMonitor = new TaskMonitor(getApplication().getContext()); taskMonitor.addPropertyChangeListener(new java.beans.PropertyChangeListener() { public void propertyChange(java.beans.PropertyChangeEvent evt) { String propertyName = evt.getPropertyName(); if ("started".equals(propertyName)) { if (!busyIconTimer.isRunning()) { statusAnimationLabel.setIcon(busyIcons[0]); busyIconIndex = 0; busyIconTimer.start(); } progressBar.setVisible(true); progressBar.setIndeterminate(true); } else if ("done".equals(propertyName)) { busyIconTimer.stop(); statusAnimationLabel.setIcon(idleIcon); progressBar.setVisible(false); progressBar.setValue(0); } else if ("message".equals(propertyName)) { String text = (String)(evt.getNewValue()); statusMessageLabel.setText((text == null) ? "" : text); messageTimer.restart(); } else if ("progress".equals(propertyName)) { int value = (Integer)(evt.getNewValue()); progressBar.setVisible(true); progressBar.setIndeterminate(false); progressBar.setValue(value); } } }); } @Action public void showAboutBox() { if (aboutBox == null) { JFrame mainFrame = MySwingApp.getApplication().getMainFrame(); aboutBox = new MySwingAboutBox(mainFrame); aboutBox.setLocationRelativeTo(mainFrame); } MySwingApp.getApplication().show(aboutBox); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { mainPanel = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); jTable1 = new javax.swing.JTable(); menuBar = new javax.swing.JMenuBar(); javax.swing.JMenu fileMenu = new javax.swing.JMenu(); javax.swing.JMenuItem exitMenuItem = new javax.swing.JMenuItem(); jMenuItem1 = new javax.swing.JMenuItem(); javax.swing.JMenu helpMenu = new javax.swing.JMenu(); javax.swing.JMenuItem aboutMenuItem = new javax.swing.JMenuItem(); statusPanel = new javax.swing.JPanel(); javax.swing.JSeparator statusPanelSeparator = new javax.swing.JSeparator(); statusMessageLabel = new javax.swing.JLabel(); statusAnimationLabel = new javax.swing.JLabel(); progressBar = new javax.swing.JProgressBar(); mainPanel.setName("mainPanel"); // NOI18N jScrollPane1.setName("jScrollPane1"); // NOI18N jTable1.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {null, null, null, null}, {null, null, null, null}, {null, null, null, null}, {null, null, null, null} }, new String [] { "Title 1", "Title 2", "Title 3", "Title 4" } ) { boolean[] canEdit = new boolean [] { false, false, false, true }; public boolean isCellEditable(int rowIndex, int columnIndex) { return canEdit [columnIndex]; } }); jTable1.setName("jTable1"); // NOI18N jScrollPane1.setViewportView(jTable1); javax.swing.GroupLayout mainPanelLayout = new javax.swing.GroupLayout(mainPanel); mainPanel.setLayout(mainPanelLayout); mainPanelLayout.setHorizontalGroup( mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(mainPanelLayout.createSequentialGroup() .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 555, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); mainPanelLayout.setVerticalGroup( mainPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(mainPanelLayout.createSequentialGroup() .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 314, Short.MAX_VALUE) .addContainerGap()) ); menuBar.setName("menuBar"); // NOI18N org.jdesktop.application.ResourceMap resourceMap = org.jdesktop.application.Application.getInstance(myswing.MySwingApp.class).getContext().getResourceMap(MySwingView.class); fileMenu.setText(resourceMap.getString("fileMenu.text")); // NOI18N fileMenu.setName("fileMenu"); // NOI18N javax.swing.ActionMap actionMap = org.jdesktop.application.Application.getInstance(myswing.MySwingApp.class).getContext().getActionMap(MySwingView.class, this); exitMenuItem.setAction(actionMap.get("quit")); // NOI18N exitMenuItem.setName("exitMenuItem"); // NOI18N fileMenu.add(exitMenuItem); jMenuItem1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_Q, java.awt.event.InputEvent.CTRL_MASK)); jMenuItem1.setText("Item"); jMenuItem1.setName("jMenuItem1"); // NOI18N jMenuItem1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { thisClick(evt); } }); fileMenu.add(jMenuItem1); menuBar.add(fileMenu); helpMenu.setText(resourceMap.getString("helpMenu.text")); // NOI18N helpMenu.setName("helpMenu"); // NOI18N aboutMenuItem.setAction(actionMap.get("showAboutBox")); // NOI18N aboutMenuItem.setName("aboutMenuItem"); // NOI18N helpMenu.add(aboutMenuItem); menuBar.add(helpMenu); statusPanel.setName("statusPanel"); // NOI18N statusPanelSeparator.setName("statusPanelSeparator"); // NOI18N statusMessageLabel.setName("statusMessageLabel"); // NOI18N statusAnimationLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT); statusAnimationLabel.setName("statusAnimationLabel"); // NOI18N progressBar.setName("progressBar"); // NOI18N javax.swing.GroupLayout statusPanelLayout = new javax.swing.GroupLayout(statusPanel); statusPanel.setLayout(statusPanelLayout); statusPanelLayout.setHorizontalGroup( statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(statusPanelSeparator, javax.swing.GroupLayout.DEFAULT_SIZE, 565, Short.MAX_VALUE) .addGroup(statusPanelLayout.createSequentialGroup() .addContainerGap() .addComponent(statusMessageLabel) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 395, Short.MAX_VALUE) .addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(statusAnimationLabel) .addContainerGap()) ); statusPanelLayout.setVerticalGroup( statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(statusPanelLayout.createSequentialGroup() .addComponent(statusPanelSeparator, javax.swing.GroupLayout.PREFERRED_SIZE, 2, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(statusPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(statusMessageLabel) .addComponent(statusAnimationLabel) .addComponent(progressBar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(3, 3, 3)) ); setComponent(mainPanel); setMenuBar(menuBar); setStatusBar(statusPanel); }// </editor-fold> private void thisClick(java.awt.event.ActionEvent evt) { System.out.println("----------------------------->");//菜单栏事件 } // Variables declaration - do not modify private javax.swing.JMenuItem jMenuItem1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTable jTable1; private javax.swing.JPanel mainPanel; private javax.swing.JMenuBar menuBar; private javax.swing.JProgressBar progressBar; private javax.swing.JLabel statusAnimationLabel; private javax.swing.JLabel statusMessageLabel; private javax.swing.JPanel statusPanel; // End of variables declaration private final Timer messageTimer; private final Timer busyIconTimer; private final Icon idleIcon; private final Icon[] busyIcons = new Icon[15]; private int busyIconIndex = 0; private JDialog aboutBox; } [/code] 如果我想在表格最后一列加个按钮,点击随便触发一个事件,应该如何写?表格的数据用动态生成。
JAVA JTable表格选中的问题
![图片说明](https://img-ask.csdn.net/upload/201706/03/1496480897_236459.png) 每次鼠标选中拖拉,都会把每行的所有列都选中 而我想要的是excell表格那样,比如只选中姓名这一列 有没有大神知道的,求解!!!
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
JDK12 Collectors.teeing 你真的需要了解一下
前言 在 Java 12 里面有个非常好用但在官方 JEP 没有公布的功能,因为它只是 Collector 中的一个小改动,它的作用是 merge 两个 collector 的结果,这句话显得很抽象,老规矩,我们先来看个图(这真是一个不和谐的图????): 管道改造经常会用这个小东西,通常我们叫它「三通」,它的主要作用就是将 downstream1 和 downstre...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
【图解经典算法题】如何用一行代码解决约瑟夫环问题
约瑟夫环问题算是很经典的题了,估计大家都听说过,然后我就在一次笔试中遇到了,下面我就用 3 种方法来详细讲解一下这道题,最后一种方法学了之后保证让你可以让你装逼。 问题描述:编号为 1-N 的 N 个士兵围坐在一起形成一个圆圈,从编号为 1 的士兵开始依次报数(1,2,3…这样依次报),数到 m 的 士兵会被杀死出列,之后的士兵再从 1 开始报数。直到最后剩下一士兵,求这个士兵的编号。 1、方...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
GitHub标星近1万:只需5秒音源,这个网络就能实时“克隆”你的声音
作者 | Google团队 译者 | 凯隐 编辑 | Jane 出品 | AI科技大本营(ID:rgznai100) 本文中,Google 团队提出了一种文本语音合成(text to speech)神经系统,能通过少量样本学习到多个不同说话者(speaker)的语音特征,并合成他们的讲话音频。此外,对于训练时网络没有接触过的说话者,也能在不重新训练的情况下,仅通过未知...
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
程序员把地府后台管理系统做出来了,还有3.0版本!12月7号最新消息:已在开发中有github地址
第一幕:缘起 听说阎王爷要做个生死簿后台管理系统,我们派去了一个程序员…… 996程序员做的梦: 第一场:团队招募 为了应对地府管理危机,阎王打算找“人”开发一套地府后台管理系统,于是就在地府总经办群中发了项目需求。 话说还是中国电信的信号好,地府都是满格,哈哈!!! 经常会有外行朋友问:看某网站做的不错,功能也简单,你帮忙做一下? 而这次,面对这样的需求,这个程序员...
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC...
【技巧总结】位运算装逼指南
位算法的效率有多快我就不说,不信你可以去用 10 亿个数据模拟一下,今天给大家讲一讲位运算的一些经典例子。不过,最重要的不是看懂了这些例子就好,而是要在以后多去运用位运算这些技巧,当然,采用位运算,也是可以装逼的,不信,你往下看。我会从最简单的讲起,一道比一道难度递增,不过居然是讲技巧,那么也不会太难,相信你分分钟看懂。 判断奇偶数 判断一个数是基于还是偶数,相信很多人都做过,一般的做法的代码如下...
【管理系统课程设计】美少女手把手教你后台管理
【文章后台管理系统】URL设计与建模分析+项目源码+运行界面 栏目管理、文章列表、用户管理、角色管理、权限管理模块(文章最后附有源码) 1. 这是一个什么系统? 1.1 学习后台管理系统的原因 随着时代的变迁,现如今各大云服务平台横空出世,市面上有许多如学生信息系统、图书阅读系统、停车场管理系统等的管理系统,而本人家里就有人在用烟草销售系统,直接在网上完成挑选、购买与提交收货点,方便又快捷。 试想,若没有烟草销售系统,本人家人想要购买烟草,还要独自前往药...
4G EPS 第四代移动通信系统
目录 文章目录目录4G 与 LTE/EPCLTE/EPC 的架构E-UTRANE-UTRAN 协议栈eNodeBEPCMMES-GWP-GWHSSLTE/EPC 协议栈概览 4G 与 LTE/EPC 4G,即第四代移动通信系统,提供了 3G 不能满足的无线网络宽带化,主要提供数据(上网)业务。而 LTE(Long Term Evolution,长期演进技术)是电信领域用于手机及数据终端的高速无线通...
相关热词 c# clr dll c# 如何orm c# 固定大小的字符数组 c#框架设计 c# 删除数据库 c# 中文文字 图片转 c# 成员属性 接口 c#如何将程序封装 16进制负数转换 c# c#练手项目
立即提问