Saturday 15 March 2014

swing - Java GUI JScrollBar How to set the length? -



swing - Java GUI JScrollBar How to set the length? -

i have next gui codded increment length of scroll bar on right side.

any thought how this?

// test class implements gui stuff. public class testing { //variables private jframe f = new jframe("gui test"); private jpanel p = new jpanel(); private jpanel p2 = new jpanel(); private jpanel p3 = new jpanel(); private jpanel p4 = new jpanel(); private jpanel p5 = new jpanel(); private jpanel p6 = new jpanel(); private jpanel p7 = new jpanel(); private jpanel p8 = new jpanel(); private jpanel p9 = new jpanel(); private jpanel p10 = new jpanel(); private jpanel p11 = new jpanel(); private jbutton b1 = new jbutton("button"); private jtextfield tf1 = new jtextfield(" "); private jtextfield tf2 = new jtextfield(" "); private jtextfield tf3 = new jtextfield(" "); private jtextarea ta1 = new jtextarea(10,45); private jlabel label1 = new jlabel("label 1"); private jlabel label2 = new jlabel("label 2"); private jlabel label3 = new jlabel("label 3"); private jlabel label4 = new jlabel("label 4"); private jscrollbar sb1 = new jscrollbar(); //class constructor public testing() { gui(); } public void gui() { //change length of scroll bar f.setvisible(true); f.setsize(600,300); p.add(label1); p.add(tf1); p2.add(label2); p2.add(tf2); p3.add(label3); p3.add(tf3); p4.add(sb1); p4.add(label4); p5.add(ta1); p6.add(b1); p4.setbackground(color.gray); p9.setbackground(color.gray); p10.setbackground(color.gray); p11.setbackground(color.gray); p9.add(p); p9.add(p2); p9.add(p3); p10.add(p5); p11.add(p6); //adds panels frames f.add(p4, borderlayout.east); f.add(p9, borderlayout.north); f.add(p10, borderlayout.center); f.add(p11, borderlayout.page_end); } public static void main(string[] args) { new testing(); }

ordinarilly, you'd add together jtextarea jscrollpane, handles resizing behavior you.

f.add(new jscrollpane(ta1), borderlayout.center);

for demonstration purposes, can override getpreferredsize() method of jscrollbar see effect.

private jscrollbar sb1 = new jscrollbar(){ @override public dimension getpreferredsize() { homecoming new dimension( super.getpreferredsize().width, ta1.getpreferredsize().height); } };

in addition,

swing gui objects should constructed , manipulated only on event dispatch thread.

use appropriate constructor found desired initial size of text components.

use appropriate layout desired resizing behavior.

as tested:

import java.awt.borderlayout; import java.awt.color; import java.awt.dimension; import java.awt.eventqueue; import javax.swing.jbutton; import javax.swing.jframe; import javax.swing.jlabel; import javax.swing.jpanel; import javax.swing.jscrollbar; import javax.swing.jtextarea; import javax.swing.jtextfield; public class testing { //variables private jframe f = new jframe("gui test"); private jpanel p = new jpanel(); private jpanel p2 = new jpanel(); private jpanel p3 = new jpanel(); private jpanel p4 = new jpanel(); private jpanel p5 = new jpanel(); private jpanel p6 = new jpanel(); private jpanel p9 = new jpanel(); private jpanel p10 = new jpanel(); private jpanel p11 = new jpanel(); private jbutton b1 = new jbutton("button"); private jtextfield tf1 = new jtextfield(12); private jtextfield tf2 = new jtextfield(12); private jtextfield tf3 = new jtextfield(12); private jtextarea ta1 = new jtextarea(10, 45); private jlabel label1 = new jlabel("label 1"); private jlabel label2 = new jlabel("label 2"); private jlabel label3 = new jlabel("label 3"); private jlabel label4 = new jlabel("label 4"); private jscrollbar sb1 = new jscrollbar(){ @override public dimension getpreferredsize() { homecoming new dimension(super.getpreferredsize().width, ta1.getpreferredsize().height); } }; //class constructor public testing() { gui(); } public void gui() { p.add(label1); p.add(tf1); p2.add(label2); p2.add(tf2); p3.add(label3); p3.add(tf3); p4.add(sb1); p4.add(label4); p5.add(ta1); p6.add(b1); p4.setbackground(color.gray); p9.setbackground(color.gray); p10.setbackground(color.gray); p11.setbackground(color.gray); p9.add(p); p9.add(p2); p9.add(p3); p10.add(p5); p11.add(p6); //adds panels frames f.add(p4, borderlayout.east); f.add(p9, borderlayout.north); f.add(p10, borderlayout.center); f.add(p11, borderlayout.page_end); f.setdefaultcloseoperation(jframe.exit_on_close); f.pack(); f.setvisible(true); } public static void main(string[] args) { eventqueue.invokelater(() -> { new testing(); }); } }

java swing user-interface

No comments:

Post a Comment