Я использую JTable, и параметры в таблице проходят через Hash Map. Hash Map содержит 2 параметра. 1 - это ключ (строка), а другой - значение (то есть вектор). Вектор содержит 2 вещи: первое значение (соответствует ключу), а другое - символ (R/W). (Чтение/запись).
Я создал таблицу с помощью этого HashMap. Но я не могу использовать значение «R/W» во время выполнения. Если конкретная ячейка содержит «R», это означает, что конкретная ячейка доступна только для чтения (нередактируемая ячейка). Если конкретная ячейка содержит «W», это означает, что конкретная ячейка доступна только для записи нового значения также (редактируемая ячейка).
SSCCE:
import java.awt.*;
import java.util.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Enumeration;
import java.util.Vector;
import java.util.List;
import javax.swing.table.TableModel;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
import javax.swing.table.TableCellRenderer;
public class DataTable extends JTable implements ActionListener,ItemListener,MouseListener
{
String ReadOrWrite[][];
JTable table;
public DataTable()
{
try
{
HashMap<String,String> HMap;
String array[][];
int count = 0;
Vector Val;
JFrame frame = new JFrame("Table");
JPanel panel = new JPanel();
HMap = getMetaData();
array = new String[HMap.size()][2];
ReadOrWrite = new String[HMap.size()][2];
for (Map.Entry entry : HMap.entrySet())
{
array[count][0] = (String) entry.getKey();
Val = (Vector) entry.getValue();
array[count][1] = (String) Val.elementAt(0);
String s1 = (String) Val.elementAt(1);
ReadOrWrite[count][1] = s1;
count++;
}
String TableLabels[] = {"Field", "Values"};
table = new JTable(array, TableLabels);
table.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
}
}
JTableHeader header = table.getTableHeader();
JScrollPane scrollPane = new JScrollPane(table);
panel.add(scrollPane);
frame.add(panel);
frame.add(scrollPane, BorderLayout.CENTER);
frame.setSize(300, 400);
frame.setResizable(true);
frame.setVisible(true);
}
catch(Exception e)
{
e.printStackTrace();
}
}
HashMap getMetaData()
{
HashMap ta=new HashMap();
Vector vec1 =new Vector();
vec1.add("1");
vec1.add("R");
Vector vec2 =new Vector();
vec2.add("2");
vec2.add("W");
ta.put("A",vec1);
ta.put("B",vec2);
return ta;
}
public void itemStateChanged(ItemEvent e)
{
}
public void actionPerformed(ActionEvent e)
{
}
public void mouseClicked(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
} Это полный код моей таблицы.
HashMap
? Как называется класс? Если бы это был «весь код», обе эти вещи были бы очевидны. Сделайте этот тест для меня: 1) Начните новый проект кода. 2) Скопируйте/вставьте в точности то, что указано в вопросе выше, в качестве кода. 3) Скомпилируйте его. 4) сообщить об ошибках. 5) Повторите этот точный эксперимент с любым из вопросов, которые я задавал, которые содержат код. Эти образцы кода являются SSCCE. - person Andrew Thompson   schedule 17.10.2011I:\...\DataTable.java:49: ')' expected
. SSCCE задачи во время выполнения должен компилироваться без ошибок. Почему это так трудно понять? - person Andrew Thompson   schedule 17.10.2011