Предположим на одном jframe есть кнопка, по нажатию которой запускается еще один jframe (new JFrameTwoBox().setVisible(true);). Как сделать первый jframe некликабельным после открытия второго и до момента его закрытия как при использовании диалогов JOptionPane.showMessageDialog?
Для проверки наличия изменений перед сохранением данных из JTable использую .isEditing(), проблема в том, что если пользователь после ввода нажмет enter или щелкнет на любую другую ячейку (так, что ячейка станет выбранной, но без курсора в ней) то isEditing вернет false и соответственно ничего не сохраниться. Выходом из ситуации мне видится либо написание собственного велосипеда для проверки наличия изменений, либо надо сделать JTable всегда редактируемым, то есть сделать так, что бы ячейку нельзя было подсветить без установки курсора в ней. Вот что накопал на эту тему:
// Нажатие Enter вызывает редактирование ячейки
jTable1.getInputMap().put(KeyStroke.getKeyStroke(KeyEvent.VK_ENTER, 0), "key-enter");
jTable1.getActionMap().put("key-enter", new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
int row = jTable1.getSelectedRow();
int col = jTable1.getSelectedColumn();
if (jTable1.isCellEditable(row, col)) {
jTable1.editCellAt(row, col);
}
}
});
// Одинарный клик по ячейке вызывает ее редактирование
((DefaultCellEditor) jTable1.getDefaultEditor(String.class)).setClickCountToStart(1);
Как поступить, писать дальше костыли на поведение клавиш стрелок итд итп, писать собственный влосипед проверки или есть более рациональный путь?
Вчера кажется началась эта эпопея: вместо буквы в «o» в логотипе гугла (на google.com) крутится красивый объемный фуллерен, который дико тормозит и вешает любой браузер кроме хромиума (и видимо хрома). Империя добра нанесла удар по вражеским браузерам? Хочешь google.com - ставь chrome?
Пока нашел JFontChooser и он мне показался убогим, поправьте если не прав: шрифт интерфейса мелкий и поменять нельзя, установить свою иконку в заголовок окна нельзя, даже задать стартовый шрифт до запуска нельзя. Посоветуйте альтернативу, которая умела бы вышеперечисленное или раскажите как это сделать с JFontChooser.
Надо, что бы возвращаемое число никогда не совпадало с предыдущим, то есть что бы никогда не выподало два одинаковых числа подряд:
int old = -1;
int rand(int max){
Random random = new Random();
int rnd;
do{
rnd = random.nextInt(max);
if (rnd == old) {
old = rnd;
continue;
}
} while (rnd == old);
return rnd;
}
Как определить координаты X Y в JTextPane по pointer (число символов от первого символа в jTextPane1 до искомого слова) без использования перевода каретки setCaretPosition.
final Point pt[] = new Point[99];
int pointer = 0;
for (int i = 0; i < 99; i++) {
String searchStr = "искомое слово";
while ((pointer = jTextPane1.getText().indexOf(searchStr, pointer + 1)) != -1) {
pt[i] = определить координаты pointer;
}
Задача кода такова: искать определенное слово в JTextPane и фиксировать координаты его начала (по положению каретки):
int pointer = 0;
int x = 0;
int y = 0;
String searchStr = "искомое слово";
while ((pointer = jTextPane1.getText().indexOf(searchStr, pointer + 1)) != -1) {
jTextPane1.setCaretPosition(pointer); // устанавливаем каретку перед словом
// получаем координаты
x = jTextPane1.getCaret().getMagicCaretPosition().x; // тут возникает
y = jTextPane1.getCaret().getMagicCaretPosition().y; // исключение
}
на вызове getMagicCaretPosition возникает исключение и цикл останавливается на первом шаге. Как решить проблему?
С помощью такого нехитрого кода можно подсветить определенное слово в JTextPane:
int pointer = 0;
SimpleAttributeSet red = new SimpleAttributeSet();
StyleConstants.setForeground(red, Color.red);
StyledDocument doc = jTextPane1.getStyledDocument();
String searchStr = "слово, которое подсвечиваем";
while ((pointer = jTextPane1.getText().indexOf(searchStr, pointer + 1)) != -1) {
doc.setCharacterAttributes(pointer, searchStr.length(), red, false);
}
как к этому коду прикрутить фичу, что бы у каждого подсвеченного слова была всплывающая подсказка (setToolTipText или что-то подобное), или может можно обработать щелчек мышкой по подсвеченому слову?
Собственно как? Ни один из найденных в сети методов не работает. Что пробовал: создавал сервис в /init.rc, добавлял скрипт в /system/etc/init.d/, пробовал программу Autostart (root). Ничего не заработало. Прошивка CyanogenMod 6 RC3 на Nexus One.
Надо что бы в памяти постоянно висел скрипт, проверяющий запущена ли определенная программа и если она не запущена, то что бы он ее запускал. Навоял нечто такое:
#!/bin/bash
while true
do
PID=$(pidof программа)
if [[ -z $PID ]]; then
программа
fi
done
Проблема в том, что этот скрипт загружает процессор на 100%. Как этого избежать?
Случайно обновил baselayout на старой (полгода без обновлений) генте до 1.12.13, одновременно с этим (?) поломался mythtv («Error: MythTV is using all inputs, but there are no active recrdings?», в статистике написано «Tuner 1 [V4L:/dev/video0] has an error»), устройство /dev/video0 на месте, модули тв тюнера saa7134 и saa7134_alsa вроде тоже в порядке. Могло ли обновление baselayout поломать mythtv или это просто совпадение? Как проверить работоспособность тюнера без иксов и установки дополнительного софта?
Надо сделать список элементов на форме: в каждом элементе должно быть несколько компонентов - кнопки, текст и картинки, выглядеть должно как то так. Список должен быть динамическим: количество элементов при каждом запуске будет меняться. Так же нужна возможность добавлять новые элементы во время работы и обновлять список. Как это реализовать? Подкиньте готовых примеров или расскажите подробно какие компоненты накидать на форму (netbeans) и как их использовать.
Как я понимаю в qt <4.6 нет централизованного управления иконками, то есть каждая программа тянет с собой все графические ресурсы. Вопрос в том, где их искать в системе. Искал в /usr/share/appname, /usr/share/pixmaps и /usr/share/icons, нигде не нашел. В частности интересуют иконки smplayer и virtualbox фронтенда.
В gtk приложениях все в порядке, в qt вместо шрифта вот такое говно. Если поставить size 9 и pixelsize 12, то шрифты отобразятся нормально, однако ни один другой размер (ни больше, не меньше) не работает.
Помнится была читалка лора на tcl/tk. Никогда особо не вдавался, но всегда считал, что она просто грабила новости по rss. Недавно с удивлением узнал, что она оказывается умела еще и отправлять комментарии. Через какой бараний рог она это делала? У лора есть API? Может у кого завалялись исходники tklor?