im пытается решить эту проблему за несколько дней. Моя программа редактирует изображения. им не используется многопоточность.Проблемы с mainThread
Я использую функцию (private void console()), которая записывает форматированный текст в JTextPane. У меня есть класс под названием ImageWork(), который работает с моими фотографиями.
моя проблема: я сначала вызываю функцию console("start with work")
, после чего я вызываю функцию моего класса для редактирования изображения (требуется некоторое время). затем я позвонил еще раз в свою консольную («финишную») функцию. я пробовал много вещей, чтобы метод редактирования изображения подождал, пока консольная функция не будет готова без успеха :( , поэтому каждый раз, когда я вызываю 3 функции, сначала изображение будет отредактировано, тогда функция консоли записывает в мою текстовую панель оба текста .
private void color2gray()
{
console("start")
try
{
myImg.color2gray();
console("success");
repaint();
}
catch (Exception e)
{
console("no success");
}
программа работает отлично. моя проблема заключается в том, что я хочу, чтобы текст в моей консоли (JTextPane), что функция начинается сейчас, и тогда функция color2gray начинается, потому что функция может занять одну минуту с большими картинками.
Я уже пробовал такие вещи, как изменить тип возврата консоли на boolean и назвать это:
while (!(console("start")) {};
Я был бы рад, если найдет кого-то решение этой проблемы. Благодаря
консоль (код):
private void console(String str,boolean fehler)
{
time=new GregorianCalendar();
String help=time.getTime().toString();
help=help.substring(0,19);
doc = (StyledDocument) console.getDocument();
Style style = doc.addStyle("StyleName", null);
StyleConstants.setForeground(style, Color.black);
try { doc.insertString(doc.getLength(),help, style); }
catch (BadLocationException e) { e.printStackTrace(); }
if (fehler) StyleConstants.setForeground(style, Color.red);
else StyleConstants.setForeground(style, new Color(0,125,0));
try { doc.insertString(doc.getLength()," : "+str+"\n", style); }
catch (BadLocationException e1) { e1.printStackTrace(); }
}
Извините, но я не понимаю, что вы проблема. Пожалуйста, отредактируйте свой пост, чтобы сделать его более понятным. – Gray
Нам нужно увидеть больше кода. – blondeamon
ok wait Я пытаюсь сделать это ясно – Andreas