Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: ledestin/swing/example/EditableTableExample.java


1   /*
2   * Copyright (C) 2000-2001 Dmitry Macsema.  All Rights Reserved.  
3   * 
4   * Redistribution and use in source and binary forms, with or without
5   * modification, are permitted under the terms of the following
6   * Open Source license:
7   *
8   * The GNU General Public License, version 2, or any later version, as
9   * published by the Free Software Foundation
10  * (http://www.fsf.org/copyleft/gpl.html);
11  */
12  
13  package ledestin.swing.example;
14  
15  import java.util.*;
16  import java.awt.Frame;
17  import java.awt.BorderLayout;
18  import javax.swing.*;
19  import ledestin.swing.*;
20  
21  public class EditableTableExample {
22    public static void main(String[] args) {
23      JFrame frame = new JFrame("Mutable Table Test");
24      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
25  
26      //create objects to show in the table
27      User[] names = new User[] {new User("Biv"), new User("Blackwell"), new User("Weirdy")};
28      List list = new ArrayList();
29      for(int i=0; i<names.length; i++) {
30        list.add(names[i]);
31      }
32      //create model
33      CollectionTableModel model = new CollectionTableModel(list, String.class);
34      //instantiate dialog
35      UserEditDialog dialog = new UserEditDialog(frame, "User edit dialog", true);
36      //create table
37      JEditableTable table = new JEditableTable(model, dialog);
38      frame.getContentPane().add(new JScrollPane(table));
39      frame.pack();
40      frame.show();
41    }
42    
43    static class User {
44      private String name;
45      User(String name) {
46        this.name = name;
47      }
48      public void setName(String newName) {
49        name = newName;
50      }
51      public String getName() {
52        return name;
53      }
54      public String toString() {
55        return name;
56      }
57    };
58  
59    static class UserEditDialog extends JEditableDialog {
60      JLabel l1 = new JLabel("Name:");
61      JTextField nameField = new JTextField(15);
62      User user;
63      UserEditDialog(Frame owner, String title, boolean modal) {
64        super(owner, title, modal);
65        JPanel panel = new JPanel();
66        panel.add(l1);
67        panel.add(nameField);
68        getContentPane().setLayout(new BorderLayout());
69        getContentPane().add(panel, BorderLayout.CENTER);
70        JEditableDialog.addOkCancelPanel(this);
71      }
72      public Object getData() {
73        user.setName(nameField.getText());
74        return user;
75      }
76      public void setData(Object data) {
77        user = (User)data;
78        nameField.setText(user.getName());
79      }
80    };
81  };