Помогите исправить видимость данных

  • Автор темы allex
  • Дата начала
Статус
Закрыто для дальнейших ответов.
A

allex

#1
<div class="sp-wrap"><div class="sp-head-wrap"><div class="sp-head folded clickable">Код java</div></div><div class="sp-body"><div class="sp-content">
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

public class CheckListExample extends JFrame {

public CheckListExample() {
String[] strs = {
"11111", "22222", "33333", "44444", "55555"};

final JList list = new JList(createData(strs));

list.setCellRenderer(new CheckListRenderer());
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setBorder(new EmptyBorder(0, 4, 0, 0));
list.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
int index = list.locationToIndex(e.getPoint());
CheckableItem item = (CheckableItem) list.getModel().
getElementAt(index);
item.setSelected(!item.isSelected());
Rectangle rect = list.getCellBounds(index, index);
list.repaint(rect);
}
});
JScrollPane sp = new JScrollPane(list);
getContentPane().add(sp, BorderLayout.CENTER);
}

private CheckableItem[] createData(String[] strs) {
int n = strs.length;
CheckableItem[] items = new CheckableItem[n];
for (int i = 0; i < n; i++) {
items = new CheckableItem(strs); // в этом месте не нравится почему то
}
return items;
}

public static void main(String args[]) {
CheckListExample frame = new CheckListExample();
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
frame.setSize(300, 200);
frame.setVisible(true);
}
}

class CheckListRenderer
extends JCheckBox
implements ListCellRenderer {
public CheckListRenderer() {
setBackground(UIManager.getColor("List.textBackground"));
setForeground(UIManager.getColor("List.textForeground"));
}

public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected,
boolean hasFocus) {
setEnabled(list.isEnabled());
setSelected( ( (CheckableItem) value).isSelected());
setFont(list.getFont());
setText( ( (CheckableItem) value).toString());
return this;
}
}

class CheckableItem {
private String str;
private boolean isSelected;

public CheckableItem(String str) {
this.str = str;
isSelected = false;
}

public void setSelected(boolean B) {
isSelected = b;
}

public boolean isSelected() {
return isSelected;
}

public String toString() {
return str;
}
}
 
Статус
Закрыто для дальнейших ответов.