在本例子中,各种船舶产品的共性是要用一个图片显示出来,怎么显示呢?在JFrame窗体中可以用一个JLabel将图片显示出来。基于这种分析, 抽象产品类Ship.java定义如下: public abstract class Ship { private String ship_pic; //用于显示船舶的图片 public String getShip_pic() { return ship_pic; } public void setShip_pic(String ship_pic) { this.ship_pic = ship_pic; } public void shipshow(JLabel jl) { //在JLabel上显示船舶图片 .......... } }
时间: 2023-06-17 21:08:09 浏览: 78
这个抽象产品类Ship.java定义已经很好的将船舶产品的共性抽象出来了。其中,ship_pic属性是用于存储船舶图片的路径,get和set方法用于获取和设置图片路径。shipshow方法用于在JLabel上显示船舶图片,具体的实现可以通过使用Java的图形库来实现。下面是一个简单的实现示例:
```java
import javax.swing.*;
import java.awt.*;
public abstract class Ship {
private String ship_pic; //用于显示船舶的图片
public String getShip_pic() {
return ship_pic;
}
public void setShip_pic(String ship_pic) {
this.ship_pic = ship_pic;
}
public void shipshow(JLabel jl) { //在JLabel上显示船舶图片
ImageIcon icon = new ImageIcon(ship_pic); //创建ImageIcon对象
Image img = icon.getImage(); //获取Image对象
Image newimg = img.getScaledInstance(jl.getWidth(), jl.getHeight(), Image.SCALE_SMOOTH); //对图片进行缩放
ImageIcon newIcon = new ImageIcon(newimg); //创建新的ImageIcon对象
jl.setIcon(newIcon); //将新的Icon设置到JLabel上
}
}
```
在这个示例中,我们使用了Java的图形库中的ImageIcon类来加载船舶图片,并使用Image类对图片进行缩放,最后将新的Icon设置到JLabel上。这样,我们就可以在具体的船舶产品类中使用shipshow方法来显示船舶图片了。
阅读全文