jTextPane беда с отображением.

 
 
 
Сообщения:10
Здравствуйте, не получается самостоятельно разобраться с ошибкой в следующей ситуации:
есть список jlist() в событии ValueChanged вызываю функцию refreshJTP(), она загружает путь в переменную после чего при помощи переменной загружаю html файл в jTextpane, все работает но немного криво, если в Базе данных строка с путем отсутствует то панель c jtextpane либо нормально очищена, либо с таким изъяном http://prntscr.com/nmu4eq т.е. в textpane загружается этот значок.

собственно сам вопрос как этот изъян убрать?


public void refreshJTP(){
        s2=""; //s2 - ссылка на документ получаемая из запроса, s1 - условие запроса
        try{
            st=conn.createStatement();
            String query="select * from topic where title='"+s1+"'";
            rs=st.executeQuery(query);
            
            int i = 0;            
            while(rs.next())
            {
                s2=rs.getString(4);                    
            }            
        }catch(Exception e){
            e.getStackTrace();
        }
        System.out.println(s2); 
        try {
            if (s2=="")
                JTP.setText("");
            else if(s2==null)
                JTP.setText("");
            JTP.setPage(getClass().getResource(s2));
            
        }catch(IOException ex)
            {ex.getStackTrace();}
    } 
 
 
Сообщения:10
Заметил особенность, в списке к примеру 3 пункта, для первого и второго пункта прописаны пути для 3 нет, если сперва кликнуть на первый то отображается файл 1, после клик на 3 файл не отображается, при переходе обратно на пункт 1 ситуация не изменяется(файл не подгружается) ,но как только клацаю на 2 пункт - выскакивает второй файл, после при переходе на 1 пункт файл 1 вновь подгружается. с пунктом 2 тоже самое при переходе на пункт 3, только появляется значок который на скрине в сообщении выше. В общем помогите пожалуйста справиться с этой ситуевиной.
 
 
Сообщения:117
Со swing'ом я не знаком. Единственное, что вызывает у меня подозрение на ошибку, так это
if (s2=="")

Когда нам нужно сравнивать содержимое строк на равенство, то необходимо использовать метод equals.
s2.equals("")


В вашем примере этот кусок кода
if (s2=="")
  JTP.setText("");
else if(s2==null)
  JTP.setText("");

можно заменить на такой
if (s2 == null || s2.isEmpty()) {
  JTP.setText("");
}
 
 
Сообщения:10
Спасибо, но нет, проблема не исчезла.
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет