Я пытаюсь составить список JPanel с кнопками, полями edittext и другими компонентами Swing, но не могу найти примеры создания списков в Swing.Я пытался сделать это с jTable, в котором есть один столбец с JPanel в ячейках, но мои поля меток меняются во всех элементах jPanel после нажатия кнопки
Вот код, который я сделал из разных примеров.Этот класс имеет методы визуализации и редактирования.Я пытаюсь изменить текст метки при нажатии кнопки.Но все метки (я хочу изменить только тот, который необходим) меняют свой текст ... Может быть, я установил onMouseListener не в этом месте ...
public class RssFeedCell extends AbstractCellEditor implements TableCellEditor, TableCellRenderer {
JPanel panel;
JLabel text;
JButton showButton;
JLabel label;
RssFeed feed;
public RssFeedCell() {
label = new JLabel();
text = new JLabel();
showButton = new JButton("View Articles");
showButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
label.setText("ed");
}
});
panel = new JPanel(new FlowLayout(FlowLayout.LEFT));
panel.add(text);
panel.add(showButton);
panel.add(label);
}
private void updateData(RssFeed feed, boolean isSelected, JTable table) {
this.feed = feed;
text.setText("" + feed.name + "" + feed.url + "Articles " + feed.articles.length + "");
if (isSelected) {
panel.setBackground(table.getSelectionBackground());
} else {
panel.setBackground(table.getBackground());
}
}
public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
RssFeed feed = (RssFeed) value;
updateData(feed, true, table);
return panel;
}
public Object getCellEditorValue() {
return null;
}
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
RssFeed feed = (RssFeed) value;
updateData(feed, isSelected, table);
return panel;
}
}