急,如何让JPanel随着中用Graphics2D的scale方法自动缩放,同时让滚动条自动变化 求救,做了一个打印预览,在一个JPanel里面绘制了表格,让Graphics2D的scale方法自动缩放,同时想让JPanel也自动缩放,绘制内容的JPanel是放在JScrollPane里面的,主要的目的是想让滚动条随着绘制的内容的缩放而自动变化,各位同行,请问怎样实现?帮帮忙 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 下面只是实现功能代码,自己集成到你的程序中去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); }} 先缩放JPanel,在重绘时缩放绘制的图形。 关于调用Calendar.MONTH是不是会比实际少一个月 read()的问题? 希望各位帮忙一下..搞了半天了..汗~~~ 高手解决的问题------------------结帖超快!!!!!!!! 如何设置建立连接数据库? 如何获取ResultSet结果集中的记录条数? 分享:打印和打印预览机制 Graphics2D 旋转 问题!!!! 一个格式化输出的代码,帮忙看看,编译通过,为什么显示不出来! 问个正则表达式的问题 分页问题:请教在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);
}
}