java swing JScrollPane 滚动条问题。先给200,回答对再加。详细如下问题补充
发布网友
发布时间:2022-05-14 17:15
我来回答
共4个回答
热心网友
时间:2023-10-15 19:16
为什么不用JSlider,相对于SCrollbar方便很多啊。
刻度方面也可以进行调整。
同时可以直接 jslh.getValue() 获取位置。
jslh=new JSlider(....)水平
jslv=new JSlider(....)垂直
热心网友
时间:2023-10-15 19:16
代码如下
scrollBar.setValue(600); 可以改变初始值,但效果不是很理想。
原因暂时没有找到,我认为是初始化的时候,容器并没有初始化出来那么大的长度。
只在这些容器装载完成以后,才能知道滚动条的确定长度
------------------------------------------------------------
import java.awt.event.AdjustmentEvent;
public class AppDemo extends JFrame implements AdjustmentListener {
public AppDemo() {
getContentPane().setLayout(null);
JScrollPane scrollPane = new JScrollPane();
scrollPane.setBounds(12, 46, 418, 217);
getContentPane().add(scrollPane);
JTextPane textPane = new JTextPane();
for (int row = 1; row <= 100; row++) {
textPane.setText(textPane.getText() + "" + row + "\n");
}
scrollPane.setViewportView(textPane);
JScrollBar scrollBar = scrollPane.getVerticalScrollBar();
scrollBar.addAdjustmentListener(this);
scrollBar.setValue(600);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(450, 300);
setVisible(true);
}
public static void main(String[] args) {
new AppDemo();
}
public void adjustmentValueChanged(AdjustmentEvent event) {
System.out.println(event.getValue());
}
}
热心网友
时间:2023-10-15 19:17
看看你要的是不是这种图片自动滚动的效果。有问题M我QQ353314220
public class ScrollingToVisible extends JFrame implements Runnable {
private static final long serialVersionUID = -5577320945504401992L;
private JLabel pic;
private JScrollPane scroller;
private boolean flag = false;
private int postion = 0;
public ScrollingToVisible() {
super("Test");
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
scroller = new JScrollPane();
pic = new JLabel();
pic.setIcon(new ImageIcon("460.jpg"));
pic.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {// 通过双击图片控制暂停、滚动
flag = flag ? false : true;
}
if (e.getClickCount() == 3) {// 通过三击图片返回最上层
scroller.getVerticalScrollBar().setValue(0);
flag = false;
postion = 0;
}
}
});
scroller.setViewportView(pic);
getContentPane().add(scroller, BorderLayout.CENTER);
setBounds(200, 10, 410, 400);
setVisible(true);
new Thread(this).start();
}
public static void main(String[] args) {
new ScrollingToVisible();
}
public void run() {
while (true) {
if (flag) {
try {
Thread.sleep(200);
scroller.getVerticalScrollBar().setValue(10 * postion++);
} catch (InterruptedException exp) {}
}
}
}
}
热心网友
时间:2023-10-15 19:17
一开始运行的时候没有滚动条啊