JScrollPane的视口不跟随窗口大小改变移动???

逍遥随风翼 2011-06-29 09:44:31
我写了个关于JScrollPane滚动窗口的程序,其它都实现好了.但是有个问题,就是窗口大小变大时,滚动窗口的视口一直停留在原来的界面,没有跟着滚动窗口变大而往右或者往下移动(滚动条已经出现),怎么解决这个问题???
...全文
138 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenbodong 2011-06-30
  • 打赏
  • 举报
回复


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

public class Test {
JFrame frame;
JSlider slider;
JScrollPane jsp;
JPanel pan;
public Test(){
frame=new JFrame();
Container contentPane=frame.getContentPane();
pan=new JPanel();
pan.setPreferredSize(new Dimension(300,300));
jsp=new JScrollPane(pan);
contentPane.add(jsp);
slider=new JSlider();
slider.setMinimum(0);
slider.setMaximum(400);
slider.setValue(0);
slider.setPaintLabels(true);
slider.setPaintTicks(true);
slider.setPaintTrack(true);
slider.setMajorTickSpacing(40);
slider.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
int value=slider.getValue();
pan.setPreferredSize(new Dimension(300+value,300+value));
jsp.setViewportView(pan);
//自己设置JScrollPane的两个滚动条的值
jsp.getHorizontalScrollBar().setValue(jsp.getHorizontalScrollBar().getMaximum());
jsp.getVerticalScrollBar().setValue(jsp.getVerticalScrollBar().getMaximum());
}
});
contentPane.add(slider,BorderLayout.SOUTH);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public static void main(String[] args) {
new Test();
}
}
小小summer 2011-06-29
  • 打赏
  • 举报
回复
好像以J开头的控件组,都不大好使…
不关是JButton,JText。楼主换个控件包吧

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧