public class SQLSelect//씨-발t-Test가왜등록하기부적절한단어야애미뒤졋나//Test extends JFrame implements ActionListener,KeyListener
{
Panels draw = new Panels();
static String statement="normal";
static int Line=0;
String Line2="a";
//중 -략
class Panels extends JPanel
{
public void paintComponent(Graphics g)
{
super.paintComponents(g);
if(statement.equals("normal"))
{
g.drawImage(img,0,0,null);
}
if(statement.equals("titlesearching"))
{
g.drawImage(img,0,0,null);
g.drawString(result//씨-발t-Test가왜등록하기부적절한단어야애미뒤졋나//text, 10, 40+Line);
Line+=20;
Line2 = Integer.toString(Line);
label.set//씨-발t-test가왜등록하기부적절한단어야애미뒤졋나//Text(Line2);
}
}
}
//중-략
private void searchBooktitle(String t) throws SQLException
{
Connection c>
Statement stmt = con.createStatement();
String s = "SELECT * FROM BOOK WHERE title LIKE '"+t+"%'";
ResultSet rs = stmt.executeQuery(s);
rs.last();
int last = rs.getRow();
rs.absolute(1);
int i=1;
while(i<=last)
{
String title = rs.getString("title");
String author = rs.getString("author");
String year = rs.getString("year");
String price = rs.getString("price");
result//씨-발t-Test가왜등록하기부적절한단어야애미뒤졋나//text = title+", "+author+" ,("+year+"),"+price+"원";
rs.next();
i+=1;
repaint(); //여기서 무한루프돔
}
Line = 0;
}
}
프갤러들 코드 긴거 싫어해서 짧게 중략했어여
mysql이랑 연동해서 하는건데
db에는 현재
제목 how to java 저자 java king 출판연도 2013 가격 25000
제목 how to C 저자 c king 출판연도 2012 가격 15000
이렇게 레코드가 두개가 있어여
그럼 저기 텍스트필드에서 h를 검색하면 how to java나오고
밑에 줄에 how to C 나오게 하고싶은데 안나오고 repaint();에서 무한루프돌아여
도와주세여
근데 설명 졷같이 써놔서 도움못받을듯 내가봐도 졷같이써놧네씨발
코드 보니까 while 문제일것 같진 않은데....
repaint함수를 새글에 올려봐라
조공이 부족해
repaint함수를 새글에 올리라는게 무슨 말씀이신가염
무한루프가 repaint에서 돈다며 그걸 봐야지
페인트 컴포넌트를 다시 불러오는게 repaint함수아닌가여? repaint함수를 따로 작성하진않았는데염
원래 있는 함수야???
넹 페인트컴포넌트 다시쓸라면 직접 부르지말고 그냥 repaint();하라해서 그렇게해여
그렇다면 while 문제가능성이 큰데.... While문 종료 되고 빠져나오는거 확실함?
경우에 따라서는 searchbooktitle()함수가 어디서 막 호출될 수도 있고......근데 문제가 정확히 뭐임? Repaint가 무한루프가 돌아서 프로그램이 멈추는 거임? 아니면 이미지가 튀는 거임?
일단 repaint()를 while문 밖에 써. 저거 안에있나 밖에 있나 결과 똑같을텐데
밖에다 써보고 그래도 무한루프 돌면 다시 글올려
안에 있는게 간지 아님?
찾는것처럼 보이자나
드르르르르륵
searchBooktitle() 호출하는 영역도 봐야할 거 같다. draw()안에서 호출했으면 repaint()할 필요가 없을텐데
찾는것처럼 안보여.. 순식간에 끝나보이거든. 그렇게 보이게 할꺼면 딜레이함수를 넣든지 해야함.
그럼 넣자!
그리고 내가 아는 한 진짜 for나 while같은 루프에다가 repaint()는 쓰지 않는다. 쓸데없이 너무 많이 호출하는거임.
밖에다 써도 무한루프행이염 아예while문 없애도 무한루프에여
클라는 성능보단 뽀대를 원한다 ^0^ 이건 내 철칙
자바초보 // searchbooktitle()함수 호출하는 부분을 봐봥
뭐야.. 무한루프 어디서 도는지 확실하게 알아와;;
searchbooktitle()함수는 그 키 이벤트 처리함수 쓰는곳에서 호출해여
키이벤트처리함수를 새글에 써봐
넴