Появилось небольшое курсовое задание. Я передаю данные с телефона на компьютер по Wi-Fi через сокеты. У меня 6 ролей в андроид-приложении и от каждого я получаю определенный ответ и записываю его в HashMap. Приложение нужно сделать на JFrame. Как вывести содержимое моей Map в окно JFrame? Основная проблема, что окно в JFrame должно постоянно обновляться, т.к. не все будут одновременно нажимать на кнопку. Если можно, то с примером кода, т.к. давно не работал с JFrame. Ответы вроде "загугли" или "да ты вообще ничего не знаешь, иди учи" не принимаются. Спасибо за понимание. Если нужен пример моего кода, то напишите. Заранее спасибо.
Немного модифицированный пример из документации
public class SimpleTableDemo extends JFrame {
// Имена колонок
private static final String[] columnNames = { "Судья", "Засчитано" };
private final JTable table;
public SimpleTableDemo() {
super("Demo");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(new GridLayout(1, 0));
table = new JTable(new Object[0][0], columnNames) {
@Override
public Class getColumnClass(int column) {
switch (column) {
case 1:
return Boolean.class;
default:
return String.class;
}
}
@Override
public boolean isCellEditable(int row, int col) {
return false;
}
};
table.setPreferredScrollableViewportSize(new Dimension(500, 80));
table.setFillsViewportHeight(true);
JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane);
pack();
setVisible(true);
}
private void setData(Map<String, Boolean> map) {
// Преобразовываем в двумерный массив для таблицы
Object[][] data = map.entrySet()
.stream()
.map(e -> new Object[] { e.getKey(), e.getValue() })
.toArray(Object[][]::new);
table.setModel(new DefaultTableModel(data, columnNames));
}
private static void start() {
SimpleTableDemo demo = new SimpleTableDemo();
// Исходные данные, приходящие из сети
Map<String, Boolean> map = new HashMap<>();
map.put("Kathy", false);
map.put("John", true);
map.put("Sue", false);
map.put("Jane", true);
map.put("Joe", false);
demo.setData(map);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(SimpleTableDemo::start);
}
}
Получится так
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Я делаю парсер для одной веб-страницы с помощью Jsoup, и мне нужно, чтобы он получал текст, заключённый между тегами <h5> и </h5>Как это сделать?
Извиняюсь за возможно глупый вопрос, я новичок и только разбираюсь