首页编程java编程java 滚动条为什么显示在最下,Java swing 如何让垂直滚动条始终在最下面

java 滚动条为什么显示在最下,Java swing 如何让垂直滚动条始终在最下面

编程之家2023-10-11112次浏览

大家好,如果您还对java 滚动条为什么显示在最下不太了解,没有关系,今天就由本站为大家分享java 滚动条为什么显示在最下的知识,包括Java swing 如何让垂直滚动条始终在最下面的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

java 滚动条为什么显示在最下,Java swing 如何让垂直滚动条始终在最下面

JAVA JTestArea 滚动条不显示

你应该给scrollPaneOut设置在JFrame中的位置,而不应该给txtOut设置在JFrame中的位置.

把txtOut.setPreferredSize(new Dimension(x*19+30,y*3-25));改成scrollPaneOut.setPreferredSize(new Dimension(x*19+30,y*3-25));并且移到scrollPaneOut=new JScrollPane(txtOut);下面,就行了.

完整的程序如下:(改动的地方见注释)

java 滚动条为什么显示在最下,Java swing 如何让垂直滚动条始终在最下面

packagewindow;

importjavax.swing.*;

importjava.awt.*;

java 滚动条为什么显示在最下,Java swing 如何让垂直滚动条始终在最下面

publicclassWindowMain

{

privateToolkittoolkit;

privateDimensionscreenSize;

privateJFramewindowMain;

privateJPanelMainjpanelMain;

privateJPaneljpanel1,jpanel2,jpanel3,jpanel4;

privateJSplitPanesplit1,split2,split3;

privateintx,y;

privateJTextAreatxtOut;

privateJScrollPanescrollPaneOut;

privatevoiddraw()

{

//设置窗体样式

windowMain=newJFrame("DoublePlayer");

toolkit=windowMain.getToolkit();

screenSize=toolkit.getScreenSize();

x=screenSize.width/20;//把尺寸分为20份后便于整体布局的分配

y=screenSize.height/20;

windowMain.setBounds(0,0,x*20,y*19);

windowMain.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//添加背景图

jpanelMain=newJPanelMain();

windowMain.add(jpanelMain);

//整体panel布局

jpanel1=newJPanel();

jpanel2=newJPanel();

split1=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,jpanel1,jpanel2);

jpanel3=newJPanel();

split2=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,split1,jpanel3);

jpanel4=newJPanel();

split3=newJSplitPane(JSplitPane.VERTICAL_SPLIT,split2,jpanel4);

split1.setPreferredSize(newDimension(x*18,y*15));

jpanel1.setPreferredSize(newDimension(x*2,y*15));

split3.setPreferredSize(newDimension(x*20,y*19));

split2.setPreferredSize(newDimension(x*20,y*15));

jpanelMain.add(split3);

//设置背景透明

jpanel1.setOpaque(false);

jpanel2.setOpaque(false);

jpanel3.setOpaque(false);

jpanel4.setOpaque(false);

split1.setOpaque(false);

split1.setDividerSize(5);

split2.setOpaque(false);

split2.setDividerSize(5);

split3.setOpaque(false);

split3.setDividerSize(5);

//添加组件

txtOut=newJTextArea();

txtOut.setLineWrap(true);

//txtOut.setPreferredSize(newDimension(x*19+30,y*3-25));//去掉这一句

scrollPaneOut=newJScrollPane(txtOut);

scrollPaneOut.setPreferredSize(newDimension(x*19+30,y*3-25));//这里加一句

jpanel4.add(scrollPaneOut,BorderLayout.WEST);

windowMain.setVisible(true);

}

classJPanelMainextendsJPanel

{

publicvoidpaintComponent(Graphicsg)

{

try

{

super.paintComponent(g);

g.drawImage(newImageIcon("image\\windowMain.jpg").getImage(),0,0,null);

}

catch(Exceptione)

{

}

}

}

publicstaticvoidmain(Stringargs[])

{

newWindowMain().draw();

}

}

java滚动条位置

滚动条(JScrollBar)也称为滑块,用来表示一个相对值,该值代表指定范围内的一个整数。例如,用Word编辑文档时,编辑窗右边的滑块对应当前编辑位置在整个文档中的相对位置,可以通过移动选择新的编辑位置。在Swing中,用JScrollBar类实现和管理可调界面。JScrollBar类常用的构造方法是:

JScrollBar(int dir,int init,int width,int low,int high)

其中,dir表示滚动条的方向。JScrollBar类定义了两个常量,JScrollBar.VERTICAL表示垂直滚动条;JScrollBar.HORIZONTAL表示水平滚动条。init表示滚动条的初始值,该值确定滚动条滑块开始时的位置;width是滚动条滑块的宽度;最后两个参数指定滚动的下界和上界。注意滑块的宽度可能影响滚动条可得到的实际的最大值。例如,滚动条的范围是0至255,滑块的宽度是10,并利用滑块的左端或顶端来确定它的实际位置。那么滚动条可以达到的最大值是指定最大值减去滑块的宽度。所以滚动条的值不会超过245。

JScrollBar类其他常用方法是:

setUnitIncrement():设置增量,即单位像素的增值;

getUnitIncrement():获取增量;

setBlockIncrement():设置滑块增量,即滑块的幅度;

getBlockIncrement():获取滑块增量;

setMaxinum():设置最大值;

getMaxinum():获取最大值;

setMininum():设置最小值;

getMininum():获取最小值;

setValue():设置新值;

getValue():获取当前值。

JScrollBar类对象的事件类型是AdjustmentEvent;类要实现的接口是AdjustmentListener,接口方法是adjustmentValueChanged();注册监视器的方法是addAdjustmentListener();获取事件源对象的方法是getAdjustable().

Java swing 如何让垂直滚动条始终在最下面

如果JScrollPane内是JTextArea,滚动条与光标位置同步,可编辑的JTextArea无需处理;

如果JScrollPane内是JPanel等无光标组件,可用以下代码:

JScrollPane jspane;

...

jspane.setVisible(false);//注意JScrollPane内面板添加组件后需JScrollPane设置setVisible值才显示改变后样子

new Thread(){

public void run(){

try{

TimeUnit.MILLISECONDS.sleep(100);

} catch(InterruptedException e){

// TODO Auto-generated catch block

e.printStackTrace();

}

//注意不能直接执行下两步,获取滚动棒获取的是上一次的,直接设置的滚动条也是按上一次,会导致总是显示倒数第二行!需等待一段时间才能获取这次滚动棒长度

JScrollBar jscrollBar= jspane.getVerticalScrollBar();

if(jscrollBar!= null)

jscrollBar.setValue(jscrollBar.getMaximum());//设置滚动条显示位置为滚动棒最大位置处

}

}.start();

jspane.setVisible();

Java如何产生有滚动条的TextArea(代码)

补充回答:你向TextArea内追加内容可以使用append方法,滚动条自动下滚;如果你使用的是 setText方法,那么需要手工把光标定位到内容的最后,同样可以是滚动条下滚。代码如下:

import java.awt.Frame;

import java.awt.TextArea;

public class TestFrame{

public static void main(String[] args){

Frame jf=new Frame();

TextArea jta=new TextArea();

jf.add(jta);

jf.setSize(400, 300);

jf.setVisible(true);

jta.setText("test\n");

for(int i=0;i<100;i++){

jta.setText(jta.getText()+"hello"+i+"\n");

jta.setCaretPosition(jta.getText().length());

}

// jta.append("hello"+i+"\n");//这样方式只需要一行代码

}

}

1)如果是JTextArea,需要把JTextArea包含到JScrollPane滚动面板中

import javax.swing.JFrame;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

public class TestFrame{

public static void main(String[] args){

JFrame jf=new JFrame();

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JTextArea jta=new JTextArea();

JScrollPane jp=new JScrollPane(jta);

jf.getContentPane().add(jp);

jf.setSize(400, 300);

jf.setVisible(true);

}

}

2)如果是TextArea,使用缺省方式就可以

import java.awt.Frame;

import java.awt.TextArea;

public class TestFrame{

public static void main(String[] args){

Frame jf=new Frame();

TextArea jta=new TextArea();

jf.add(jta);

jf.setSize(400, 300);

jf.setVisible(true);

}

}

文章到此结束,如果本次分享的java 滚动条为什么显示在最下和Java swing 如何让垂直滚动条始终在最下面的问题解决了您的问题,那么我们由衷的感到高兴!

reno2(reno2手机参数)java为什么有gc(java中GC是什么为什么要有GC)