📄 messagetable.java
字号:
gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); jPanel2.add(jButton2, gridBagConstraints); jButton3.setText("Delete"); jButton3.setToolTipText("delete the current configuration from the preferences"); jButton3.setMaximumSize(new java.awt.Dimension(80, 26)); jButton3.setMinimumSize(new java.awt.Dimension(80, 26)); jButton3.setPreferredSize(new java.awt.Dimension(80, 26)); jButton3.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton3ActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTH; gridBagConstraints.insets = new java.awt.Insets(0, 3, 3, 3); jPanel2.add(jButton3, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.gridwidth = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; getContentPane().add(jPanel2, gridBagConstraints); errorText.setEditable(false); errorText.setText("no error"); errorText.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(1, 1, 1, 1))); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 0); getContentPane().add(errorText, gridBagConstraints); jPanel3.setLayout(new java.awt.GridBagLayout()); jPanel3.setBorder(new javax.swing.border.TitledBorder("Message Format")); jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); jLabel1.setText("msg type:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 3); jPanel3.add(jLabel1, gridBagConstraints); amTypeText.setText("0x00"); amTypeText.setToolTipText("the active message type"); amTypeText.setMinimumSize(new java.awt.Dimension(35, 20)); amTypeText.setPreferredSize(new java.awt.Dimension(35, 20)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 0; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; jPanel3.add(amTypeText, gridBagConstraints); timeStampBox.setText("time stamp"); timeStampBox.setToolTipText("put a timestamp on each incoming message"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.gridwidth = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; jPanel3.add(timeStampBox, gridBagConstraints); counterBox.setText("counter"); counterBox.setToolTipText("show the count of received messages with the same unique fields"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; gridBagConstraints.gridwidth = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; jPanel3.add(counterBox, gridBagConstraints); jScrollPane2.setHorizontalScrollBarPolicy(javax.swing.JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); jScrollPane2.setMinimumSize(new java.awt.Dimension(150, 100)); formatText.setColumns(12); formatText.setToolTipText("format of each line: [unique, omit, const] <type> <name> [ = <value>]"); formatText.setMinimumSize(new java.awt.Dimension(100, 100)); formatText.setPreferredSize(new java.awt.Dimension(132, 100)); jScrollPane2.setViewportView(formatText); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 5; gridBagConstraints.gridwidth = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weighty = 1.0; jPanel3.add(jScrollPane2, gridBagConstraints); jLabel2.setText("length:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.EAST; gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 3); jPanel3.add(jLabel2, gridBagConstraints); lenText.setEditable(false); lenText.setToolTipText("the expected length of the packets"); lenText.setPreferredSize(new java.awt.Dimension(35, 20)); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; jPanel3.add(lenText, gridBagConstraints); firstUniqueBox.setText("first unique only"); firstUniqueBox.setToolTipText("display only the first unique message"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; gridBagConstraints.gridwidth = 2; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; jPanel3.add(firstUniqueBox, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; getContentPane().add(jPanel3, gridBagConstraints); jPanel4.setLayout(new java.awt.GridBagLayout()); jPanel4.setBorder(new javax.swing.border.TitledBorder("Table")); jPanel1.setLayout(new java.awt.GridBagLayout()); jButton41.setText("Add Row"); jButton41.setToolTipText("adds an empty row in the table"); jButton41.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton41ActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridy = 0; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); gridBagConstraints.weightx = 1.0; jPanel1.add(jButton41, gridBagConstraints); jButton5.setText("Send Msg(s)"); jButton5.setToolTipText("broadcasts the selected rows"); jButton5.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton5ActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridy = 0; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); gridBagConstraints.weightx = 1.0; jPanel1.add(jButton5, gridBagConstraints); jButton4.setText("Delete Row(s)"); jButton4.setToolTipText("removes the selected rows from the table"); jButton4.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton4ActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridy = 0; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); gridBagConstraints.weightx = 1.0; jPanel1.add(jButton4, gridBagConstraints); jButton1.setText("Reset"); jButton1.setToolTipText("reparse the message format and clear the table"); jButton1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { jButton1ActionPerformed(evt); } }); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridy = 0; gridBagConstraints.insets = new java.awt.Insets(0, 3, 0, 3); gridBagConstraints.weightx = 1.0; jPanel1.add(jButton1, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 0; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(0, 0, 5, 0); jPanel4.add(jPanel1, gridBagConstraints); jScrollPane1.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(1, 1, 1, 1))); jScrollPane1.setMinimumSize(new java.awt.Dimension(200, 100)); jScrollPane1.setPreferredSize(new java.awt.Dimension(400, 403)); table.setModel(tableModel); table.setToolTipText("double click on a column to sort the rows"); jScrollPane1.setViewportView(table); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 2.0; gridBagConstraints.weighty = 1.0; jPanel4.add(jScrollPane1, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; getContentPane().add(jPanel4, gridBagConstraints); rowCount.setEditable(false); rowCount.setText("row count:"); rowCount.setBorder(new javax.swing.border.EmptyBorder(new java.awt.Insets(1, 1, 1, 1))); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 2; gridBagConstraints.gridwidth = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.insets = new java.awt.Insets(0, 4, 0, 0); getContentPane().add(rowCount, gridBagConstraints); pack(); }//GEN-END:initComponents private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed int[] rows = table.getSelectedRows(); tableModel.sendRows(rows); }//GEN-LAST:event_jButton5ActionPerformed private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed int[] rows = table.getSelectedRows(); tableModel.removeRows(rows); }//GEN-LAST:event_jButton4ActionPerformed private void jButton41ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton41ActionPerformed byte[] packet = new byte[PACKET_DATA + tableModel.packetLength]; packet[PACKET_LENGTH] = (byte)tableModel.packetLength; tableModel.addPacket(packet); }//GEN-LAST:event_jButton41ActionPerformed private void configNameTextActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_configNameTextActionPerformed if( configNameText.getSelectedIndex() < 0 ) return; String name = (String)configNameText.getSelectedItem(); Preferences p = prefs.node(prefs.absolutePath() + "/config/" + name); amTypeText.setText(new String(p.get("amType", "0x00"))); counterBox.setSelected(p.getBoolean("counter", false)); timeStampBox.setSelected(p.getBoolean("timeStamp", false)); firstUniqueBox.setSelected(p.getBoolean("firstUnique", false)); formatText.setText(new String(p.get("format", "")).replaceAll(";","\n")); jButton1ActionPerformed(null); setTitle("Message Table - "+name); super.setTitle(getTitle()); }//GEN-LAST:event_configNameTextActionPerformed private void saveComboBox() { /*String items = ""; for(int i = 0; i < configNameText.getItemCount(); ++i) items = items + (String)configNameText.getItemAt(i) + "\n"; prefs.put("configs", items);*/ } private void loadComboBox() { configNameText.removeAllItems(); //StringTokenizer tokenizer = new StringTokenizer(prefs.get("configs", ""), "\n"); try{ Preferences p = prefs.node(prefs.absolutePath() + "/config"); String[] configNames = p.childrenNames(); for(int i=0; i< configNames.length; i++) configNameText.addItem(configNames[i]); }catch (java.util.prefs.BackingStoreException bse){ System.err.println("Cannot Load Configurations:"+ bse.getMessage()); } } private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed String name = (String)configNameText.getSelectedItem(); errorText.setText("configuration " + name + " removed"); configNameText.removeItem(name); try { saveComboBox(); Preferences p = prefs.node(prefs.absolutePath() + "/config/" + name); p.removeNode(); prefs.flush(); } catch(BackingStoreException e) { errorText.setText("could not write preferences"); }; }//GEN-LAST:event_jButton3ActionPerformed private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed String name = (String)configNameText.getSelectedItem(); errorText.setText("configuration " + name + " saved"); if( configNameText.getSelectedIndex() < 0 ) configNameText.addItem(name); try { setTitle("Message Table - "+name); super.setTitle(getTitle()); saveComboBox(); Preferences p = prefs.node(prefs.absolutePath() + "/config/" + name); p.put("amType", amTypeText.getText()); p.putBoolean("counter", counterBox.isSelected()); p.putBoolean("timeStamp", timeStampBox.isSelected()); p.putBoolean("firstUnique", firstUniqueBox.isSelected()); String formatString = formatText.getText(); String newFormatString = formatString.replaceAll("\n",";"); //System.out.println(newFormatString.replaceAll(";","\n")); p.put("format",newFormatString ); prefs.flush(); } catch(BackingStoreException e) { errorText.setText("could not write preferences"); }; }//GEN-LAST:event_jButton2ActionPerformed private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed errorText.setText("format parsed for AM type " + amTypeText.getText()); amType = parseInt(amTypeText.getText()) & 0xFF; String format = formatText.getText(); if( counterBox.isSelected() ) format = "counter counter\n" + format; if( timeStampBox.isSelected() ) format = "time timestamp\n" + format; tableModel.resetEntries(format); }//GEN-LAST:event_jButton1ActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JTable table; private javax.swing.JButton jButton2; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JPanel jPanel4; private javax.swing.JCheckBox firstUniqueBox; private javax.swing.JLabel jLabel1; private javax.swing.JComboBox configNameText; private javax.swing.JPanel jPanel3; private javax.swing.JTextField lenText; private javax.swing.JLabel jLabel2; private javax.swing.JButton jButton1; private javax.swing.JCheckBox counterBox; private javax.swing.JPanel jPanel2; private javax.swing.JButton jButton3; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JCheckBox timeStampBox; private javax.swing.JTextArea formatText; private javax.swing.JButton jButton5; private javax.swing.JButton jButton41; private javax.swing.JTextField errorText; private javax.swing.JPanel jPanel1; private javax.swing.JTextField amTypeText; private javax.swing.JButton jButton4; private javax.swing.JTextField rowCount; // End of variables declaration//GEN-END:variables }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -