📄 datasetbindingdemopanel.java
字号:
/* * DataSetBindingDemoPanel.java * * Created on April 29, 2005, 1:48 PM */package org.jdesktop.demo.binding;import javax.swing.JSlider;import org.jdesktop.binding.DataModel;import org.jdesktop.binding.TabularDataModel;import org.jdesktop.binding.swingx.AbstractBinding;import org.jdesktop.binding.swingx.BooleanBinding;import org.jdesktop.binding.swingx.ComboBoxBinding;import org.jdesktop.binding.swingx.DirectListBinding;import org.jdesktop.binding.swingx.LabelBinding;import org.jdesktop.binding.swingx.RadioBinding;import org.jdesktop.binding.swingx.TextBinding;import org.jdesktop.dataset.DataRow;import org.jdesktop.dataset.DataSet;import org.jdesktop.dataset.DataTable;import org.jdesktop.dataset.adapter.DataModelAdapter;import org.jdesktop.dataset.adapter.SelectionModelAdapter;import org.jdesktop.dataset.adapter.TabularDataModelAdapter;import org.jdesktop.demo.DemoPanel;/** * * @author rbair */public class DataSetBindingDemoPanel extends DemoPanel { private DataSet testDS; /** Creates new form DataSetBindingDemoPanel */ public DataSetBindingDemoPanel() { setName("Binding to DataSet"); initComponents(); //set up the DataSet testDS = DataSetBindingDemoPanel.createTestDataSet(); //load the DataSet with some test data DataSetBindingDemoPanel.loadTestDataSet(testDS); //now to bind TabularDataModel tdm = new TabularDataModelAdapter(testDS.getTable("Users")); new DirectListBinding(hackerList, tdm, "name", new SelectionModelAdapter(testDS.getTable("Users").getSelector("current"))); DataModel model = new DataModelAdapter(testDS.getTable("Users").getSelector("current")); new LabelBinding(idLBL, model, "id"); new TextBinding(nameTF, model, "name"); new RadioBinding(mfRadioGroup, model, "gender"); new BooleanBinding(developerCHK, model, "developer"); new ComboBoxBinding(langCB, model, "primary_language"); new CustomSliderBinding(skillSlider, model, "skill_level"); new TextBinding(notesTA, model, "notes"); } public String getHtmlDescription() { return "<html>This demo shows the results of binding various UI " + "components to a DataSet. The DataSet schema can be viewed by " + "clicking the 'View Schema' button</html>"; } private static DataSet createTestDataSet() { DataSet ds = new DataSet("Test"); DataTable table = ds.createTable("Users"); table.createColumn("id").setKeyColumn(true); table.getColumn("id").setType(Integer.class); table.createColumn("name"); table.createColumn("gender"); table.createColumn("developer").setType(Boolean.class); table.createColumn("primary_language"); table.createColumn("skill_level").setType(Integer.class); table.createColumn("notes"); return ds; } private static void loadTestDataSet(DataSet ds) { DataTable users = ds.getTable("Users"); appendUser(users, 100, "John Doe", "Male", true, "English", 4, "Nice guy"); appendUser(users, 101, "Jane Doe", "Female", true, "English", 6, "Not related to John Doe, amazingly enough"); appendUser(users, 120, "Harry Hacker", "Male", true, "French", 9, "Remarkable fello!"); appendUser(users, 300, "Marlaina S. Coder", "Female", true, "German", 8, "Oh boy can she code!"); } private static DataRow appendUser(DataTable users, int id, String name, String gender, boolean dev, String lang, int skillz, String notes) { DataRow user = users.appendRowNoEvent(); user.setValue("id", id); user.setValue("name", name); user.setValue("gender", gender); user.setValue("developer", dev); user.setValue("primary_language", lang); user.setValue("skill_level", skillz); user.setValue("notes", notes); user.setStatus(DataRow.DataRowStatus.UNCHANGED); return user; } /** 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 ">//GEN-BEGIN:initComponents private void initComponents() { java.awt.GridBagConstraints gridBagConstraints; jSplitPane1 = new javax.swing.JSplitPane(); jScrollPane1 = new javax.swing.JScrollPane(); hackerList = new javax.swing.JList(); jPanel1 = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); nameTF = new javax.swing.JTextField(); jLabel2 = new javax.swing.JLabel(); idLBL = new javax.swing.JLabel(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); developerCHK = new javax.swing.JCheckBox(); jLabel6 = new javax.swing.JLabel(); langCB = new javax.swing.JComboBox(); jLabel7 = new javax.swing.JLabel(); skillSlider = new javax.swing.JSlider(); jLabel8 = new javax.swing.JLabel(); jScrollPane3 = new javax.swing.JScrollPane(); notesTA = new javax.swing.JTextArea(); mfRadioGroup = new org.jdesktop.swingx.JXRadioGroup(); mfRadioGroup.add("Male"); mfRadioGroup.add("Female"); setLayout(new java.awt.BorderLayout()); jScrollPane1.setViewportView(hackerList); jSplitPane1.setLeftComponent(jScrollPane1); jPanel1.setLayout(new java.awt.GridBagLayout()); jLabel1.setText("Bound JLabel:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(12, 12, 0, 0); jPanel1.add(jLabel1, gridBagConstraints); nameTF.setText("jTextField1"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(7, 5, 0, 11); jPanel1.add(nameTF, gridBagConstraints); jLabel2.setText("Bound JTextField:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 1; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(7, 12, 0, 0); jPanel1.add(jLabel2, gridBagConstraints); idLBL.setText("jLabel3"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(12, 5, 0, 11); jPanel1.add(idLBL, gridBagConstraints); jLabel4.setText("Bound JXRadioGroup:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(7, 12, 0, 0); jPanel1.add(jLabel4, gridBagConstraints); jLabel5.setText("Bound JCheckBox:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(7, 12, 0, 0); jPanel1.add(jLabel5, gridBagConstraints); developerCHK.setText("Developer"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 3; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(7, 5, 0, 11); jPanel1.add(developerCHK, gridBagConstraints); jLabel6.setText("Bound JComboBox:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 4; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.WEST; gridBagConstraints.insets = new java.awt.Insets(7, 12, 0, 0); jPanel1.add(jLabel6, gridBagConstraints); langCB.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "English", "French", "German", "Spanish", "Russian" })); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 4; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(7, 5, 0, 11); jPanel1.add(langCB, gridBagConstraints); jLabel7.setText("Bound JSlider:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 5; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(7, 12, 0, 0); jPanel1.add(jLabel7, gridBagConstraints); skillSlider.setMajorTickSpacing(1); skillSlider.setMaximum(10); skillSlider.setMinorTickSpacing(1); skillSlider.setPaintLabels(true); skillSlider.setPaintTicks(true); skillSlider.setSnapToTicks(true); skillSlider.setToolTipText("Select the skill level of the developer, 1 being lowest, 10 being highest"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 5; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(7, 5, 0, 11); jPanel1.add(skillSlider, gridBagConstraints); jLabel8.setText("Bound JEditorPane:"); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 0; gridBagConstraints.gridy = 6; gridBagConstraints.fill = java.awt.GridBagConstraints.HORIZONTAL; gridBagConstraints.anchor = java.awt.GridBagConstraints.NORTHWEST; gridBagConstraints.insets = new java.awt.Insets(7, 12, 0, 0); jPanel1.add(jLabel8, gridBagConstraints); jScrollPane3.setViewportView(notesTA); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 6; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.weighty = 1.0; gridBagConstraints.insets = new java.awt.Insets(7, 5, 11, 11); jPanel1.add(jScrollPane3, gridBagConstraints); gridBagConstraints = new java.awt.GridBagConstraints(); gridBagConstraints.gridx = 1; gridBagConstraints.gridy = 2; gridBagConstraints.fill = java.awt.GridBagConstraints.BOTH; gridBagConstraints.weightx = 1.0; gridBagConstraints.insets = new java.awt.Insets(7, 5, 0, 11); jPanel1.add(mfRadioGroup, gridBagConstraints); jSplitPane1.setRightComponent(jPanel1); add(jSplitPane1, java.awt.BorderLayout.CENTER); } // </editor-fold>//GEN-END:initComponents // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JCheckBox developerCHK; private javax.swing.JList hackerList; private javax.swing.JLabel idLBL; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JPanel jPanel1; private javax.swing.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane3; private javax.swing.JSplitPane jSplitPane1; private javax.swing.JComboBox langCB; private org.jdesktop.swingx.JXRadioGroup mfRadioGroup; private javax.swing.JTextField nameTF; private javax.swing.JTextArea notesTA; private javax.swing.JSlider skillSlider; // End of variables declaration//GEN-END:variables public static final class CustomSliderBinding extends AbstractBinding { private JSlider slider; public CustomSliderBinding(JSlider slider, DataModel model, String fieldName) { super(slider, model, fieldName, AbstractBinding.AUTO_VALIDATE_NONE); } protected void setComponent(javax.swing.JComponent component) { assert component instanceof JSlider; slider = (JSlider)component; } protected void setComponentValue(Object value) { if (value instanceof Number) { slider.setValue(((Number)value).intValue()); } } protected Object getComponentValue() { return slider.getValue(); } public javax.swing.JComponent getComponent() { return slider; } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -