求助,这个bug到底如何解决

x1127856657 2015-10-08 08:12:50
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.event.*;
import java.awt.image.*;

public class Test {
public class HalfTransparentImageDemo extends JFrame{
private static final long serialVersionUID = 1L;
private Container content =getContentPane();//获得窗口容器
private JSlider jSlider =new JSlider (JSlider.HORIZONTAL,0,100,75);//改变图像透明度
DisplayPanel displayPanel = new DisplayPanel();//显示图形面板
public HalfTransparentImageDemo(){
super("半透明图片");//调用父类构造器
jSlider.setPaintTicks(true);//绘制标志位
jSlider.setMajorTickSpacing(25);//设置标志尺寸
jSlider.setMinorTickSpacing(5);
jSlider.setPaintLabels(true);//绘制出数字
jSlider.setBorder(new TitledBorder(BorderFactory.createEmptyBorder(),"图像的透明度(%)"));//设置边框
jSlider.addChangeListener(new ChangeListener(){//滑动条jSlider事件处理
public void stateChanged(ChangeEvent ce){
float alpha=
((float)((JSlider) ce.getSource()).getValue())/100;
displayPanel.alpha=alpha;//改变图像的透明度
displayPanel.repaint();}
});
content.add(jSlider,BorderLayout.SOUTH);
content.add(displayPanel,BorderLayout.CENTER);
setSize(300,300);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void main(String[] args){
new HalfTransparentImageDemo();
}
class DisplayPanel extends JPanel{
private static final long serialVersionUID = 1L;
String[] imageName ={"back.jpg","girl.gif"};//图像文件名数组
BufferedImage bufImage1,bufImage2;
float alpha=0.75f;
public BufferedImage loadBufImage(String fileName) throws InterruptedException{
Image image=getToolkit().getImage(fileName);
MediaTracker mt=new MediaTracker(this);
mt.addImage(image, 0);
mt.waitForAll();
BufferedImage bufImage =new BufferedImage(image.getWidth(this),image.getHeight(this),BufferedImage.TYPE_INT_ARGB);
Graphics bufImageG2D=bufImage.createGraphics();
bufImageG2D.drawImage(image, 0, 0,this);
return bufImage;
}
public DisplayPanel() throws Exception{
bufImage1=loadBufImage(imageName[0]);
bufImage2=loadBufImage(imageName[1]);
}
public void paint(Graphics g){
Graphics2D g2d=(Graphics2D) g;
g2d.drawImage(bufImage1, 0,0,this);
int compositeRule =AlphaComposite.SRC_OVER;
AlphaComposite alphaComposite=AlphaComposite.getInstance(compositeRule,alpha);
g2d.setComposite(alphaComposite);
g2d.drawImage(bufImage2, 0, 0, this);
}

}
}

}
...全文
224 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
三仙半 2015-10-13
  • 打赏
  • 举报
回复
关于Java的基本的语法规范,需要找一本入门的教程耐心的看,跟着做,不是一两句话的事情,我学Java那会儿是看的孙鑫的视频教程,你百度一下,应该还能找到,其实关于基础,很多视频教程,守着一个从头到尾慢慢看,不能随便跳过。
x1127856657 2015-10-09
  • 打赏
  • 举报
回复
引用 2 楼 三仙半的回复:
楼主,您这是啥意思?出啥问题了?运行不了,是吗?您这Test类里面套着一个HalfTransparentImageDemo类,HalfTransparentImageDemo 类里面又套着一个DisplayPanel类,您这个结构是想达到什么目的?main()方法您想放在哪里? 我是真糊涂了。。。。。。我坐等楼主指教了。。。。。。
这个我刚学java,对逻辑大块结构确实不太清楚,用的是eclipse,就是建立一个类然后一股脑的把代码全部敲进去,具体怎么样确实不清楚,希望大神赐教,我诚心受教,万分感谢 还有个疑问我建个类继承一个父类吗,用的eclipse,难道在new class 写类名是要A extends B 这样写吗?虚心求教,万分感谢
三仙半 2015-10-09
  • 打赏
  • 举报
回复
还有一个地方,就是定义
DisplayPanel displayPanel = new DisplayPanel();//显示图形面板
这个地方,将new操作移到HalfTransparentImageDemo 类的构造方法里面去,还得用try...catch...包上
三仙半 2015-10-09
  • 打赏
  • 举报
回复
1、将HalfTransparentImageDemo 类从Test类中分离出来,如果还是在Test.java中,要将类定义的public去掉 2、将DisplayPanel 类从HalfTransparentImageDemo 类中分离出来 3、此时,Test类中应该只剩一个main()方法,将它改成静态的,也就是在方法定义的public后加上static修饰 4、此时应该可以运行了,只要能找到那两张图片,运行效果还不错,嘿嘿
三仙半 2015-10-09
  • 打赏
  • 举报
回复
楼主,您这是啥意思?出啥问题了?运行不了,是吗?您这Test类里面套着一个HalfTransparentImageDemo类,HalfTransparentImageDemo 类里面又套着一个DisplayPanel类,您这个结构是想达到什么目的?main()方法您想放在哪里? 我是真糊涂了。。。。。。我坐等楼主指教了。。。。。。
KeepSayingNo 2015-10-08
  • 打赏
  • 举报
回复
啥问题啊,没看出来
它通过读取 Excel 表格中的业务数据,结合 Word 模板,自动生成多个独立的合同文件,并自动处理了表格中“合计”行的合并与中文大写金额转换。 资源名称:合同文档自动化生成脚本 (1.py) 名字真是乱起 核心功能:Excel 数据读取 → Word 模板渲染 → 表格单元格合并与金额处理 → 批量导出 Word 文档。 适用场景:财务、销售或行政部门需要根据订单或业务明细,批量制作格式统一的合同、报价单或结算单。 1. 自动把“钱”变成“大写” 它干了啥:它内置了一个翻译功能,专门把阿拉伯数字(比如 100.50)自动转换成财务专用的中文大写(比如 壹佰元伍角)。 为什么有用:写合同最怕手滑写错金额,或者大写格式不对。这个功能全自动搞定,既标准又不会出错。 2. 自动“装修”表格底部 它干了啥:生成文档后,它会自动找到表格的最后一行,把前几列合并成一个大格子,写上“合计:XXX(大写金额)”,并在最右边填上具体的数字总额。 为什么有用:平时我们做完表格,还得手动去合并单元格、算总数、填大写,非常繁琐。这个脚本直接一步到位,把表格收尾工作做得漂漂亮亮。 3. 像“发传单”一样批量做合同 它干了啥:它会看你的 Excel 表格,按照“编号”把数据归类。 如果是同一个编号的货物,它会把它们塞进同一个合同里(比如一个客户买了三样东西,会自动列三行)。 如果是不同的编号,它就生成不同的合同文件。 为什么有用:不管你有一百个还是一千个订单,它都能自动拆分,给每个客户生成一份独立的、内容准确的合同,完全不用人工去复制粘贴。

62,622

社区成员

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

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