Java Swing编程的问题

packageSwing;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;//本实例建立一个启动界... package Swing;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//本实例建立一个启动界面程序,当程序运行时,启动界面显示五张图片,依次轮流显示,时间为100秒,自动计时,当进度条到头,关闭窗口,进入主程序
/*技术要点分析:启动窗口没有标题栏,可以通过继承JWindow来实现。窗口上用JLable来显示图像:用JProgressBar来建立进度条,通过Timer
* 对象进行及时,实现进度条的自动,Timer组件可以使程序在一段时间内依次执行指定的操作,这在动画的展示中非常有用
*
*/
public class SplashWindow extends JWindow implements ActionListener {
JLabel back=new JLabel(new ImageIcon("0.jpeg"),JLabel.CENTER);
JLabel begain=new JLabel("BEGAINING.....");
JLabel txtTime=new JLabel();
JProgressBar progressBar=new JProgressBar(1,100);
Timer timer;
JPanel p1=new JPanel();
JPanel p2=new JPanel();
int n=100;
public SplashWindow(){
progressBar.setString("正在加载程序.....");
progressBar.setStringPainted(true);
Container contentPane=getContentPane();
contentPane.setLayout(null);
setSize(200,200);
toFront();
setLocation(200,200);
back.setBounds(10,20,200,100);
p1.setBounds(10,140,200,20);
p2.setBounds(10,160,200,40);
setVisible(true);
p1.add(begain);
p2.add(txtTime);
p2.add(progressBar);
contentPane.add(back);
contentPane.add(p1);
contentPane.add(p2);
timer=new javax.swing.Timer(100,this);
timer.start();

}
public void actionPerformed(ActionEvent e){
if(--n>0){
progressBar.setValue(100-n);
txtTime.setText(Integer.toString(n));
timer.restart();
}
else{
timer.stop();
dispose();
}
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
SplashWindow splashWindonw=new SplashWindow();
}

}
哪位高手能大概讲解一下这道题目涉及的概念问题吗,比如Container contentPane=getContentPane();
若能详细解答,感激不尽,并且送分40,先给30分,另外10分追赏
展开
 我来答
daay1986
2011-04-08 · TA获得超过6018个赞
知道大有可为答主
回答量:2208
采纳率:0%
帮助的人:1479万
展开全部
import java.awt.Component;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Icon;
import javax.swing.Timer;

/**
*
* @author admin
*/
public class NewJFrame1 extends javax.swing.JWindow {

int n = 1;

/** Creates new form NewJFrame1 */
public NewJFrame1() {
initComponents();
}

@Override
public void setVisible(boolean b) {
this.setSize(400, 400);
super.setVisible(b);
Timer t = new Timer(1000, new ActionListener() {

public void actionPerformed(ActionEvent e) {

if (n < 6) {
jProgressBar1.setValue(20 * n);
jLabel1.setIcon(new Icon() {

public void paintIcon(Component c, Graphics g, int x, int y) {
g.drawString(jProgressBar1.getValue() + "", x, y);
}

public int getIconWidth() {
return 100;
}

public int getIconHeight() {
return 100;
}
});
n++;
}
}
});
t.setRepeats(true);
t.start();
}

/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jLabel1 = new javax.swing.JLabel();
jProgressBar1 = new javax.swing.JProgressBar();

jLabel1.setFont(new java.awt.Font("宋体", 1, 48)); // NOI18N
jLabel1.setText("");
getContentPane().add(jLabel1, java.awt.BorderLayout.CENTER);
getContentPane().add(jProgressBar1, java.awt.BorderLayout.SOUTH);

pack();
}// </editor-fold>

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {

public void run() {
new NewJFrame1().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JLabel jLabel1;
private javax.swing.JProgressBar jProgressBar1;
// End of variables declaration
}
icon使用ImageIcon自己去看看api.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chaocqs
2011-04-07
知道答主
回答量:36
采纳率:0%
帮助的人:17.4万
展开全部
其实就是一个Swing的简单例子,通过容器来添加组件,容器又可以分成不同的类型,有点像Java里面项目--包--类这样分层次的,一个项目里面可以有几个包,一个包里又可以有几个类一样,顶层容器像工程,中间容器像包,组件像类,具体的看看书,我也在学习中,说的可能不好或者不对的地方多见谅,哈哈
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
doggy33x
2011-04-08 · 超过21用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:49.6万
展开全部
Container contentPane=getContentPane();
这只是句偷懒的话。。。。
不想每次写getContentPane(),就用contentPane来代替而已,其实就是getContentPane()
如果是1.6以上版本,这句都可以不要
这句话的意思也就是得到那个JWindow

至于你问的显示的图片,我没发现有换图片的方法,他把图片都写死了
JLabel back=new JLabel(new ImageIcon("0.jpeg"),JLabel.CENTER);
放在JLabel上 0.jpeg 就是图片路径
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
渡轮555
2011-04-07 · TA获得超过534个赞
知道小有建树答主
回答量:863
采纳率:100%
帮助的人:658万
展开全部
Container contentPane=getContentPane(); 获得Jwindow的顶级容器
Timer timer; 一个定时器,定时刷新progressBar,txtTime
这里面没有要显示的图片吧?
追问
显示的图片是要放在哪里呢??
追答
看错了,图片放在back里,不过没有轮流显示
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
脑子有病是吧
2011-04-08 · TA获得超过126个赞
知道小有建树答主
回答量:206
采纳率:0%
帮助的人:129万
展开全部
你查API啊! 都有呢 要学会查API
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式