import org.gnu.glade.*; import org.gnu.glib.*; import org.gnu.gtk.*; import org.gnu.gtk.event.*; public class TextViewTest { public static void main(String[] args) { try { Gtk.init(args); new TextViewTest(); Gtk.main(); } catch(Exception e) { e.printStackTrace(); } } Button buttonTest1; Button buttonTest2; TextView textview; Frame frameTest; public void startTest(final int testNum) { frameTest.setLabel(" Test " + testNum + " "); buttonTest1.setSensitive(false); buttonTest2.setSensitive(false); Thread t = new Thread() { public void run() { int i; try { for(i=0; i<1000; ++i) { final int ifin = i; CustomEvents.addEventAndWait(new Runnable() { public void run() { String s = "Text line blahblahblahblahblahblahblahblahbla"; textview.getBuffer().beginUserAction(); if(testNum == 1) { for(int j=0; j<100; ++j) { textview.getBuffer().insertText((ifin*100 + j + 1) + ". " + s + "\n"); } } else { StringBuffer sb = new StringBuffer(); for(int j=0; j<100; ++j) { sb.append((ifin*100 + j + 1) + ". " + s + "\n"); } textview.getBuffer().insertText(sb.toString()) ; } textview.getBuffer().endUserAction(); textview.scrollToMark(textview.getBuffer().getInsert(), 0.0); System.out.println("Row number: " + (ifin*100 + 100)); } }); Thread.sleep(1000); } } catch(Exception e) { e.printStackTrace(); } } }; t.setDaemon(true); t.start(); } public TextViewTest() throws Exception { LibGlade glade = new LibGlade("textviewtest.glade", this); buttonTest1 = (Button) glade.getWidget("button_test1"); buttonTest1.addListener(new ButtonListener() { public void buttonEvent(ButtonEvent evt) { if(evt.getType() == ButtonEvent.Type.CLICK) { startTest(1); } } }); buttonTest2 = (Button) glade.getWidget("button_test2"); buttonTest2.addListener(new ButtonListener() { public void buttonEvent(ButtonEvent evt) { if(evt.getType() == ButtonEvent.Type.CLICK) { startTest(2); } } }); Button button_quit = (Button) glade.getWidget("button_quit"); button_quit.addListener(new ButtonListener() { public void buttonEvent(ButtonEvent evt) { if(evt.getType() == ButtonEvent.Type.CLICK) { System.out.println("Shutting down.."); Gtk.mainQuit(); } } }); frameTest = (Frame) glade.getWidget("frame_test"); textview = (TextView) glade.getWidget("textview"); } }