📄 test.java
字号:
import javax.swing.*;
import javax.swing.event.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;
public class Test extends JApplet {
DefaultBoundedRangeModel model =
new DefaultBoundedRangeModel(100,0,0,100);
JSlider slider = new JSlider(model);
JLabel readOut = new JLabel("100%");
ImageIcon image = new ImageIcon("shortcake.jpg");
ImageView imageView = new ImageView(image, model);
public void init() {
Container contentPane = getContentPane();
JPanel panel = new JPanel();
panel.add(new JLabel("Set Image Size:"));
panel.add(slider);
panel.add(readOut);
contentPane.add(panel, BorderLayout.NORTH);
contentPane.add(imageView, BorderLayout.CENTER);
model.addChangeListener(new ReadOutSynchronizer());
}
class ReadOutSynchronizer implements ChangeListener {
public void stateChanged(ChangeEvent e) {
String s = Integer.toString(model.getValue());
readOut.setText(s + "%");
readOut.revalidate();
}
}
}
class ImageView extends JScrollPane {
JPanel panel = new JPanel();
Dimension originalSize = new Dimension();
Image originalImage;
ImageIcon icon;
public ImageView(ImageIcon icon, BoundedRangeModel model) {
panel.setLayout(new BorderLayout());
panel.add(new JLabel(icon));
this.icon = icon;
this.originalImage = icon.getImage();
setViewportView(panel);
model.addChangeListener(new ModelListener());
originalSize.width = icon.getIconWidth();
originalSize.height = icon.getIconHeight();
}
class ModelListener implements ChangeListener {
public void stateChanged(ChangeEvent e) {
BoundedRangeModel model =
(BoundedRangeModel)e.getSource();
if( ! model.getValueIsAdjusting()) {
int min = model.getMinimum(),
max = model.getMaximum(),
span = max - min,
value = model.getValue();
double multiplier = (double)value / (double)span;
multiplier = multiplier == 0.0 ?
0.01 : multiplier;
Image scaled = originalImage.getScaledInstance(
(int)(originalSize.width * multiplier),
(int)(originalSize.height * multiplier),
Image.SCALE_FAST);
icon.setImage(scaled);
panel.revalidate();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -