Как генерировать Jlist с чередованием цветов

Я читал где-то еще, что вы можете попробовать - поймать java.lang.OutOfMemoryError и в блоке catch вы можете освободить все ресурсы, которые, как вы знаете, могут использовать много памяти, закрыть соединения и т. Д., Затем выполнить System.gc() затем попробуйте все, что вы собирались сделать.

Другой способ заключается в том, что, хотя я не знаю, сработает ли это, но в настоящее время я проверяю, сработает ли это в моем приложении.

Идея состоит в том, чтобы выполнить сборку мусора, вызвав System.gc (), который, как известно, увеличивает свободную память. Вы можете продолжать проверять это после того, как исполняется код памяти.

//Mimimum acceptable free memory you think your app needs
long minRunningMemory = (1024*1024);

Runtime runtime = Runtime.getRuntime();

if(runtime.freeMemory()<minRunningMemory)
 System.gc();
10
задан jjnguy 2 July 2009 в 21:14
поделиться

1 ответ

Чтобы настроить внешний вид ячеек JList , вам необходимо написать ваша собственная реализация ListCellRenderer .

Пример реализации класса может выглядеть следующим образом: (грубый набросок, не тестировался)

public class MyListCellThing extends JLabel implements ListCellRenderer {

    public MyListCellThing() {
        setOpaque(true);
    }

    public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
        // Assumes the stuff in the list has a pretty toString
        setText(value.toString());

        // based on the index you set the color.  This produces the every other effect.
        if (index % 2 == 0) setBackground(Color.RED);
        else setBackground(Color.BLUE);

        return this;
    }
}

Для использования этого средства визуализации в вашем Конструктор JList поместил этот код:

setCellRenderer(new MyListCellThing());

Чтобы изменить поведение ячейки в зависимости от выбранной и имеющей фокус, используйте предоставленные логические значения.

15
ответ дан 3 December 2019 в 22:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: