[code=Java]
package StartDiaguo;import java.awt.BorderLayout;public class start extends JDialog { /**
 * 
 */
private static final long serialVersionUID = -1319648410946700062L;
private final JPanel contentPanel = new JPanel();
 private static int numOfWeek = 0;
private JTextField textField; private static start a = new start();
/**
 * Launch the application.
 */
public static void main(String[] args) {
try {
start dialog = new start();
// Toolkit toolkit = Toolkit.getDefaultToolkit();
dialog.setLocationRelativeTo(null);
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
} /**
 * Create the dialog.
 */
public start() {
this.setResizable(false);
setBounds(100, 100, 300, 200);
getContentPane().setLayout(new BorderLayout());
contentPanel.setToolTipText("");
contentPanel.setBorder(new EmptyBorder(5, 5, 5, 5));
getContentPane().add(contentPanel, BorderLayout.CENTER);
contentPanel.setLayout(new GridLayout(0, 1, 0, 0));
{
JPanel panelLabel = new JPanel();
contentPanel.add(panelLabel);
panelLabel.setLayout(new BorderLayout(0, 0));

JLabel lblNewLabelStart = new JLabel("Insert numbers of weeks for your appointment");
lblNewLabelStart.setHorizontalAlignment(SwingConstants.CENTER);
panelLabel.add(lblNewLabelStart);
}
{
JPanel panelText = new JPanel();
contentPanel.add(panelText);
panelText.setLayout(new GridLayout(1, 0, 0, 0));
{
JPanel panel = new JPanel();
panelText.add(panel);
{
textField = new JTextField();
textField.setHorizontalAlignment(SwingConstants.LEFT);
textField.setColumns(10);
panel.add(textField);
}
}
}
{
JPanel buttonPane = new JPanel();
buttonPane.setLayout(new FlowLayout());
getContentPane().add(buttonPane, BorderLayout.SOUTH);
{
JButton okButton = new JButton("OK");
okButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
try {
numOfWeek=Integer.parseInt(textField.getText());
System.out.println(numOfWeek);
if (numOfWeek ==0) {
JOptionPane.showMessageDialog(null, "The input number must be great than 0", "Error", JOptionPane.ERROR_MESSAGE);
textField.setText(null);
textField.requestFocus();
} else {
MainFrame mainFrame = new MainFrame();
mainFrame.setVisible(true);
mainFrame.setLocationRelativeTo(contentPanel);
dispose();
}


} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Input valid numbers", "Error", JOptionPane.ERROR_MESSAGE);
textField.setText(null);
textField.requestFocus();
}


}
});

okButton.setActionCommand("OK");
buttonPane.add(okButton);
getRootPane().setDefaultButton(okButton);
}
}
}
public static int getNumOfWeek() {
return numOfWeek;
}
}
第一个类我想实现当我点击左边的list item, 显示对应的table ,数据存起来

解决方案 »

  1.   

    package StartDiaguo;import java.awt.BorderLayout;public class MainFrame extends JFrame {
    // private Object[] store = new Object[start.getNumOfWeek()];
    private JPanel contentPane;
    private DefaultListModel lModel; 
    private JTable table;
    private JList list;
    private DefaultTableModel tModel;
    // private static Vector[] vArray = new Vector[start.getNumOfWeek()];
    /**
     * Launch the application.
     */
    public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
    public void run() {
    try {
    MainFrame frame = new MainFrame();
    frame.setVisible(true);
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    });
    } /**
     * Create the frame.
     */
    public MainFrame() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 1135, 633);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    setContentPane(contentPane);
    GridBagLayout gridBagLayout = new GridBagLayout();
    gridBagLayout.columnWidths = new int[]{150, 842, 0};
    gridBagLayout.rowHeights = new int[]{496, 0};
    gridBagLayout.columnWeights = new double[]{0.0, 1.0, Double.MIN_VALUE};
    gridBagLayout.rowWeights = new double[]{1.0, Double.MIN_VALUE};
    contentPane.setLayout(gridBagLayout);

    JScrollPane scrollPane_1 = new JScrollPane();
    GridBagConstraints gbc_scrollPane_1 = new GridBagConstraints();
    gbc_scrollPane_1.insets = new Insets(0, 0, 0, 5);
    gbc_scrollPane_1.fill = GridBagConstraints.BOTH;
    gbc_scrollPane_1.gridx = 0;
    gbc_scrollPane_1.gridy = 0;
    contentPane.add(scrollPane_1, gbc_scrollPane_1);



    JPanel panelTable = new JPanel();
    GridBagConstraints gbc_panelTable = new GridBagConstraints();
    gbc_panelTable.fill = GridBagConstraints.BOTH;
    gbc_panelTable.gridx = 1;
    gbc_panelTable.gridy = 0;
    contentPane.add(panelTable, gbc_panelTable);
    GridBagLayout gbl_panelTable = new GridBagLayout();
    gbl_panelTable.columnWidths = new int[]{0, 0};
    gbl_panelTable.rowHeights = new int[]{34, 0, 0};
    gbl_panelTable.columnWeights = new double[]{1.0, Double.MIN_VALUE};
    gbl_panelTable.rowWeights = new double[]{0.0, 1.0, Double.MIN_VALUE};
    panelTable.setLayout(gbl_panelTable);

    JPanel panel = new JPanel();
    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;
    panelTable.add(panel, gbc_panel);
    panel.setLayout(new FormLayout(new ColumnSpec[] {
    ColumnSpec.decode("max(51px;default)"),
    ColumnSpec.decode("center:max(131px;default)"),
    ColumnSpec.decode("center:max(131px;default)"),
    ColumnSpec.decode("center:max(131px;default)"),
    ColumnSpec.decode("center:max(131px;default)"),
    ColumnSpec.decode("center:max(131px;default)"),
    ColumnSpec.decode("center:max(131px;default)"),
    ColumnSpec.decode("center:max(131px;default)"),},
    new RowSpec[] {
    FormFactory.RELATED_GAP_ROWSPEC,
    FormFactory.DEFAULT_ROWSPEC,}));

    JLabel lblDate = new JLabel("Date");
    panel.add(lblDate, "1, 2");

    JLabel lblDate1 = new JLabel("date1");
    panel.add(lblDate1, "2, 2");

    JLabel lblDate2 = new JLabel("date2");
    panel.add(lblDate2, "3, 2");

    JLabel lblDate3 = new JLabel("date3");
    panel.add(lblDate3, "4, 2");

    JLabel lblDate4 = new JLabel("date4");
    panel.add(lblDate4, "5, 2");

    JLabel lblDate5 = new JLabel("date5");
    panel.add(lblDate5, "6, 2");

    JLabel lblDate6 = new JLabel("date6");
    panel.add(lblDate6, "7, 2");

    JLabel lblDate7 = new JLabel("date7");
    panel.add(lblDate7, "8, 2");

    JPanel panel_1 = new JPanel();
    GridBagConstraints gbc_panel_1 = new GridBagConstraints();
    gbc_panel_1.fill = GridBagConstraints.BOTH;
    gbc_panel_1.gridx = 0;
    gbc_panel_1.gridy = 1;
    panelTable.add(panel_1, gbc_panel_1);
    panel_1.setLayout(new BorderLayout(0, 0));

    JScrollPane scrollPane = new JScrollPane();
    panel_1.add(scrollPane, BorderLayout.CENTER);

    JPanel panel_2 = new JPanel();
    scrollPane.setRowHeaderView(panel_2);
    panel_2.setLayout(new FormLayout(new ColumnSpec[] {
    FormFactory.LABEL_COMPONENT_GAP_COLSPEC,
    ColumnSpec.decode("46px"),},
    new RowSpec[] {
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),
    RowSpec.decode("max(16px;default)"),}));

    JLabel label = new JLabel("09:00");
    panel_2.add(label, "2, 1");

    JLabel labe2 = new JLabel("09:15");
    panel_2.add(labe2, "2, 2");

    JLabel labe3 = new JLabel("09:30");
    panel_2.add(labe3, "2, 3");

    JLabel labe4 = new JLabel("09:45");
    panel_2.add(labe4, "2, 4");

    JLabel labe5 = new JLabel("10:00");
    panel_2.add(labe5, "2, 5");

    JLabel labe6 = new JLabel("10:15");
    panel_2.add(labe6, "2, 6");

    JLabel labe7 = new JLabel("10:30");
    panel_2.add(labe7, "2, 7");

    JLabel label8 = new JLabel("10:45");
    panel_2.add(label8, "2, 8");

    JLabel label9 = new JLabel("11:00");
    panel_2.add(label9, "2, 9");

    JLabel label10 = new JLabel("11:15");
    panel_2.add(label10, "2, 10");

    JLabel label11 = new JLabel("11:30");
    panel_2.add(label11, "2, 11");

    JLabel label12 = new JLabel("11:45");
    panel_2.add(label12, "2, 12");

    JLabel label13 = new JLabel("12:00");
    panel_2.add(label13, "2, 13");

    JLabel label14 = new JLabel("12:15");
    panel_2.add(label14, "2, 14");

    JLabel label15 = new JLabel("12:30");
    panel_2.add(label15, "2, 15");

    JLabel label16 = new JLabel("12:45");
    panel_2.add(label16, "2, 16");

    JLabel label17 = new JLabel("01:00");
    panel_2.add(label17, "2, 17");

    JLabel label18 = new JLabel("01:15");
    panel_2.add(label18, "2, 18");

    JLabel label19 = new JLabel("01:30");
    panel_2.add(label19, "2, 19");

    JLabel label20 = new JLabel("01:45");
    panel_2.add(label20, "2, 20");

    JLabel label21 = new JLabel("02:00");
    panel_2.add(label21, "2, 21");

    JLabel label22 = new JLabel("02:15");
    panel_2.add(label22, "2, 22");

    JLabel label23 = new JLabel("02:30");
    panel_2.add(label23, "2, 23");

    JLabel label24 = new JLabel("02:45");
    panel_2.add(label24, "2, 24");

    JLabel label25 = new JLabel("03:00");
    panel_2.add(label25, "2, 25");

    JLabel label26 = new JLabel("03:15");
    panel_2.add(label26, "2, 26");

    JLabel label27 = new JLabel("03:30");
    panel_2.add(label27, "2, 27");

    JLabel label_2 = new JLabel("03:45");
    panel_2.add(label_2, "2, 28");

    JLabel label_3 = new JLabel("04:00");
    panel_2.add(label_3, "2, 29");

    JLabel label_1 = new JLabel("04:15");
    panel_2.add(label_1, "2, 30");

    JLabel label_4 = new JLabel("04:30");
    panel_2.add(label_4, "2, 31");

    JLabel label28 = new JLabel("04:45");
    panel_2.add(label28, "2, 32");
    TableModelD tableModelD = new TableModelD();
    table = new JTable(tableModelD);
    scrollPane.setViewportView(table);

    lModel = new ListModel();
    list = new JList(lModel);
    list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

    list.addListSelectionListener(new ListSelectionListener() {
    public void valueChanged(ListSelectionEvent arg0) {
    int temp = list.getSelectedIndex();
    System.err.println(temp);
    // vArray[temp] = tModel.getDataVector();

    }
    });
    scrollPane_1.setViewportView(list);



    }
    }class ListModel extends DefaultListModel{

    ListModel(){
    for (int i = 1; i <=start.getNumOfWeek(); i++) {
    addElement("week"+i);

    }
    }
    }class TableModelD extends DefaultTableModel{
    //  DefaultTableModel tModel;
    final String[] days = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thurday","Friday","Saturday" };
    final String[][] data = new String[32][7];
    TableModelD(){
    setDataVector(data, days);

    }
    }