/* * $Id: PropertyGridDemo.java,v 1.1 2004/12/22 04:47:51 zfq Exp zfq $ * * Copyright (C) 2001-2003 Extreme Component, Inc. All rights reserved. * Use is subject to license terms. */ import java.beans.*; import java.util.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.border.*; import com.zfqjava.swing.JPropertyGrid; import com.zfqjava.swing.PropertyGridModel; import com.zfqjava.swing.AbstractPropertyGridModel; import com.zfqjava.swing.model.BeanPropertyGridModel; /** * JPropertyGrid Demo * * @author $Author: zfq $ * @version $Revision: 1.1 $ $Date: 2004/12/22 04:47:51 $ */ public class PropertyGridDemo extends JPanel { private JPropertyGrid propertyGrid; public PropertyGridDemo() { super(new BorderLayout()); propertyGrid = createPropertyGrid(); add(propertyGrid, BorderLayout.CENTER); add(createPropertyPanel(), BorderLayout.EAST); } private JPropertyGrid createPropertyGrid() { JPropertyGrid propertyGrid = new JPropertyGrid(); propertyGrid.setModel(new BeanPropertyGridModel("javax.swing.JTable")); return propertyGrid; } private JPanel createPropertyPanel() { JPanel panel = new JPanel(); Border titledBorder = BorderFactory.createTitledBorder("Change Property"); Border emptyBorder = BorderFactory.createEmptyBorder(12, 12, 12, 12); panel.setBorder(BorderFactory.createCompoundBorder(titledBorder, emptyBorder)); GridBagLayout gridbag = new GridBagLayout(); GridBagConstraints c = new GridBagConstraints(); panel.setLayout(gridbag); c.weightx = 0.5; c.weighty = 0.5; c.fill = GridBagConstraints.HORIZONTAL; c.anchor = GridBagConstraints.WEST; c.insets = new Insets(0, 0, 5, 0); JLabel label = new JLabel("View Mode: "); addPanel(panel, c, label); Object[] viewModes = { "Categorized", "Alphabetical"}; final JComboBox viewModeCB = new JComboBox(viewModes); viewModeCB.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Object item = viewModeCB.getSelectedItem(); if(item.equals("Categorized")) { propertyGrid.setViewMode(JPropertyGrid.CATEGORIZED_VIEW_MODE); } else if(item.equals("Alphabetical")) { propertyGrid.setViewMode(JPropertyGrid.ALPHABETICAL_VIEW_MODE); } } }); label.setLabelFor(viewModeCB); c.gridwidth = GridBagConstraints.REMAINDER; addPanel(panel, c, viewModeCB); return panel; } private static void addPanel(Container container, GridBagConstraints c, Component component) { GridBagLayout gridbag = (GridBagLayout)container.getLayout(); gridbag.setConstraints(component, c); container.add(component); } public static void main(String[] args) { JFrame f = new JFrame("JPropertyGrid Demo"); DemoPanel demoPanel = new DemoPanel(); demoPanel.addDemo(new PropertyGridDemo()); f.getContentPane().add(demoPanel); f.setDefaultCloseOperation(JFrame. EXIT_ON_CLOSE); f.pack(); centerOnScreen(f); f.show(); } public static void centerOnScreen(Window window) { Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); window.setLocation((d.width - window.getWidth())/2, (d.height - window.getHeight())/2); } }