求救,做了一个打印预览,在一个JPanel里面绘制了表格,让Graphics2D的scale方法自动缩放,同时想让JPanel也自动缩放,绘制内容的JPanel是放在JScrollPane里面的,主要的目的是想让滚动条随着绘制的内容的缩放而自动变化,各位同行,请问怎样实现?帮帮忙
解决方案 »
- java 读取xml的NullPointer问题
- 如何不用遍历的方式取出二维数组中的给定val的对应Key?
- 请教递归
- 在JTable中的鼠标右键的问题
- 关于HttpURLConnection的问题,谢谢
- 如何在屏幕指定的位置输出结果?(新手,多多关照)
- 一个java 的简单程序错误 请教->
- 关于在frame中new了一个frame后再关闭的问题 大家帮帮忙吧 可惜分不多了
- 用文件IO流理论上是不是自己可以做一个小型数据库?
- 问问大家Java得代码规范是什么?
- 分页问题:请教在jdbc for sqlserver2000不支持二次回滚的情况下怎么实现分页?求代码,谢谢。
- 求一个正则表达式!过滤空格和斜线的!~
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;public class Test {
public static void main(String[] args) {
final JFrame frame = new JFrame();
final JPanel panel = new JPanel();
panel.setBackground(Color.GREEN);
panel.setPreferredSize(new Dimension(800,200));
frame.getContentPane().add(new JScrollPane(panel));
JButton zoomOutButton = new JButton("缩小");
JButton zoomInButton = new JButton("放大");
JPanel buttonsPanel = new JPanel();
buttonsPanel.add(zoomOutButton);
buttonsPanel.add(zoomInButton);
frame.getContentPane().add(buttonsPanel, BorderLayout.NORTH);
zoomOutButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int width = panel.getWidth() - 100;
int height = panel.getHeight();
panel.setPreferredSize(new Dimension(width, height));
panel.revalidate(); // 重点是这一句,使得布局生效
}
});
zoomInButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int width = panel.getWidth() + 100;
int height = panel.getHeight();
panel.setPreferredSize(new Dimension(width, height));
panel.revalidate();
}
});
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 600);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}