hi, everyone, i'm really a
java beginner, and i'm trying to write down a pretty simple java gui. could anyone tell me that how to implement the correspondance between an element of a list and a cell in a table, i.e., if i choose "A1" in the list first, the "A1" cell in the table will be selected correspondingly; conversely, if i make a click on the "A1" cell in the table, the "A1" element will show up in the list. here's my codes:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.TableModel;
public class SimpleSheet {
JList list;
JTable table;
public static void main(
String[] args) {
SimpleSheet gui = new SimpleSheet();
gui.go();
}
public void go() {
JFrame frame = new JFrame("SimpleSheet");
JPanel verPanel = new JPanel();
verPanel.setLayout(new BoxLayout(verPanel, BoxLayout.Y_AXIS));
JPanel horPanel = new JPanel();
horPanel.setLayout(new BoxLayout(horPanel, BoxLayout.X_AXIS));
JLabel label1 = new JLabel("0");
JLabel label2 = new JLabel("1");
JLabel label3 = new JLabel("2");
JLabel label4 = new JLabel("3");
JLabel label5 = new JLabel("4");
JLabel label6 = new JLabel("5");
JLabel label7 = new JLabel("6");
JLabel label8 = new JLabel("7");
JLabel label9 = new JLabel("8");
JLabel label10 = new JLabel("9");
JLabel label11 = new JLabel("10");
verPanel.add(label1);
verPanel.add(label2);
verPanel.add(label3);
verPanel.add(label4);
verPanel.add(label5);
verPanel.add(label6);
verPanel.add(label7);
verPanel.add(label8);
verPanel.add(label9);
verPanel.add(label10);
verPanel.add(label11);
String[] listEntries = {"A1", "B1", "C1", "D1", "E1", "A2", "B2", "C2", "D2", "E2", "A3", "B3", "C3", "D3", "E3", "A4", "B4", "C4", "D4", "E4", "A5", "B5", "C5", "D5", "E5", "A6", "B6", "C6", "D6", "E6", "A7", "B7", "C7", "D7", "E7", "A8", "B8", "C8", "D8", "E8", "A9", "B9", "C9", "D9", "E9", "A10", "B10", "C10", "D10", "E10"};
list = new JList(listEntries);
JScrollPane listScroller = new JScrollPane(list);
listScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
listScroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
horPanel.add(listScroller);
list.setVisibleRowCount(1);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
JTextField field = new JTextField("");
horPanel.add(field);
String[][] content = {{"1", "2", "1.5", "2.5", "1.3"}, {"2", "5", "3", "2.2", "8"}, {"", "", "", "", ""}, {"", "", "", "", ""}, {"", "", "", "", ""}, {"", "", "", "", ""}, {"", "", "", "", ""}, {"", "", "", "", ""}, {"", "", "", "", ""}, {"", "", "", "", ""}};
String[] caption = {"A", "B", "C", "D", "E"};
table = new JTable(content, caption);
JScrollPane tableScroller = new JScrollPane(table);
frame.getContentPane().add(BorderLayout.WEST, verPanel);
frame.getContentPane().add(BorderLayout.NORTH, horPanel);
frame.getContentPane().add(BorderLayout.CENTER, tableScroller);
frame.setSize(500, 250);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
thanks!