<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title></title>
    <description>立志于搞算法</description>
    <link>http://kruby.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>请教一个swing线程的问题</title>
        <author>kruby</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://kruby.javaeye.com">kruby</a>&nbsp;
          链接：<a href="http://kruby.javaeye.com/blog/190963" style="color:red;">http://kruby.javaeye.com/blog/190963</a>&nbsp;
          发表时间: 2008年05月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          下面这段代码是简单模拟我遇到的问题，<br />分两个线程<br />线程A显示一个进度条<br />线程B循环输出数字<br /><br />点击“开始”以后，我要的效果是进度条在那边滚，同时循环输出，输出结束后再显示一个新框。<br />而现在的现象是等输出结束后，显示新框，这时候进度条才开始滚。<br />请教怎么解决这个问题<br /><br /><br /><pre name="code" class="java">import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.reflect.InvocationTargetException;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JProgressBar;
import javax.swing.SwingUtilities;

public class ProgressSample
{
	static class BarThread extends Thread
	{
		private static int DELAY = 500;
		JProgressBar progressBar;

		public BarThread(JProgressBar bar)
		{
			progressBar = bar;
		}

		public void run()
		{
			int minimum = progressBar.getMinimum();
			int maximum = progressBar.getMaximum();
			Runnable runner = new Runnable()
			{
				public void run()
				{
					int value = progressBar.getValue();
					progressBar.setValue(value + 1);
				}
			};
			for (int i = minimum; i &lt; maximum; i++)
			{
				try
				{
					SwingUtilities.invokeAndWait(runner);
					// Our task for each step is to just sleep
					Thread.sleep(DELAY);
				} catch (InterruptedException ignoredException)
				{
				} catch (InvocationTargetException ignoredException)
				{
				}
			}
		}
	}

	public static void main(String args[])
	{
		// Initialize
		final JProgressBar aJProgressBar = new JProgressBar(0, 100);
		final JButton aJButton = new JButton("Start");
		ActionListener actionListener = new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				aJButton.setEnabled(false);
				Thread stepper = new BarThread(aJProgressBar);
				stepper.start();
				
				whileThread wt = new whileThread();
				wt.start();
				try
				{
					wt.join();
				} catch (InterruptedException e1)
				{
					// TODO 自动生成 catch 块
					e1.printStackTrace();
				}
				JFrame newFrame = new JFrame("&&&&&&&&&&&&&&&&&&&&&&");
				newFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
				newFrame.setLocation(500, 400);
				newFrame.setSize(300, 100);
				newFrame.show();
			}
		};
		aJButton.addActionListener(actionListener);
		JFrame theFrame = new JFrame("Progress Bars");
		theFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		Container contentPane = theFrame.getContentPane();
		contentPane.add(aJProgressBar, BorderLayout.NORTH);
		contentPane.add(aJButton, BorderLayout.SOUTH);
		theFrame.setLocation(500, 200);
		theFrame.setSize(300, 100);
		theFrame.show();
	}
	
	
}
class whileThread extends Thread
{
	public void run()
	{
		int i =0;
		while(i &lt; 1000000)
		{
			System.out.println(i++);
		}
	}
}
</pre>
          <br/>
          <span style="color:red;">
            <a href="http://kruby.javaeye.com/blog/190963#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 08 May 2008 10:59:05 +0800</pubDate>
        <link>http://kruby.javaeye.com/blog/190963</link>
        <guid>http://kruby.javaeye.com/blog/190963</guid>
      </item>
      <item>
        <title>搞了2年j2se，现在跳槽都没地方要，转j2ee还是c++？</title>
        <author>kruby</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://kruby.javaeye.com">kruby</a>&nbsp;
          链接：<a href="http://kruby.javaeye.com/blog/169315" style="color:red;">http://kruby.javaeye.com/blog/169315</a>&nbsp;
          发表时间: 2008年03月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          本人06年毕业于名校计算机系（名牌专业）<br /><br />基于以下几个原因到了现在这家公司工作：<br />1.家在同一个城市<br />2.公司有政府支持，号称两年内上市<br />3.做的产品跟世界顶级公司竞争，似乎蛮有实力的样子<br />4.300人左右，公司不小，应该比较正规，比较有前途及钱途<br /><br />有些不满意的地方也就不计较了，比如说：<br />1.月薪低（不怕笑话，试用期（四个月）仅仅1200，加上房贴和餐贴一共1800）<br />2.没有任何福利，唯一的福利就是几个月一包大便纸（质量越来越差）<br />3.试用期潜规则：周工时要达到60小时<br />4.加班没有加班工资，对外宣称：员工自愿加班<br />5.公积金按照当地最低工资交<br /><br />    转正时破天荒地加了1K，，扣掉5金之类的，到手是2.4K。这次转正加薪是06年11月，一直到现在08年3月，快一年半了，一次薪都没加过，还是2.4K。在这物价飞涨的年代，不加薪就相当于降薪！（公司盈利几乎为零，一年赚的钱还不够两个月发的工资。完全靠政府的支持活了7年，这是第八个年头了）<br />    这是薪金福利方面的事，说多了也没意思，下面说工作上的东西。<br />    整个公司开发一个软件，属于大型通用基础软件（软件名字不方便说）。按理来说，开发这么大一个东西，管理上一定很严谨，流程也应当很完善。事实并非如此，其他就不说了，咱是搞技术的，专说技术开发这一块。<br />    学过软件工程或没学过的都知道，市场调查很重要。调查完了要做分析，分析完了要定规格，定了规格程序员才能进行设计开发。而在这里，几乎不做市场调查，定规格和设计开发是并行的。也就是说我在这儿一边分析设计，一边还要跟规格交流是否是这么做。等我这边代码完成了七七八八了，那边的规格才刚刚正式下发......<br />    这里要说说为什么不做市场调查，那是因为公司的产品的功能是照抄上面提到的世界顶级公司的产品，也就是对手的产品，自然有什么功能抄什么功能，功能怎么做咱也怎么做就行了。<br />    由于是大型通用软件，人也比较多，自然每个人负责的东西比较细。本人一年时间就负责了运算系统及367个各类函数。主要负责函数的接口，核心算法以及代码优化提高性能。工作量超大，负责大概15万行左右的代码。接口部分很繁琐很简单！用到的知识我现在看看大一新生学过一点基本语法就可以搞定。算法部分有点难度（曾经华为电话面试问我：是不是网上的代码直接复制过去的。这是不可能的！除了财务类函数是外包的，其他都是自己写的）。这种项目经验听起来很牛X，外面却用不上。<br />    套用一句我师父（跳槽了）的话:两年下来我只会if else了。现在整个组里面就剩一个领导和一个我了，工作还是那些，学不到什么东西，也学不到用不上什么技术。<br />    开发语言用的是j2se，外面不要；<br />    项目经验外面没用；<br />    技术实力没有增加，相比毕业时还有倒退的趋势；<br />    竞争力不如应届生......<br />    本人的简历投出去了就像泥牛入海，杳无音信。有些猎头看了我的简历还推荐给华为两次，华为一个电话过来问了下，由于项目经验不相关，语言不符合，婉拒了我。要我涨点经验再去应聘。<br />    本人急切地想跳槽，奈何简历上没东西可写。感觉完全与外界脱钩了。<br />    现特此询问一下转j2ee这热门的行业还是做C++？
          <br/>
          <span style="color:red;">
            <a href="http://kruby.javaeye.com/blog/169315#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 08 Mar 2008 12:31:18 +0800</pubDate>
        <link>http://kruby.javaeye.com/blog/169315</link>
        <guid>http://kruby.javaeye.com/blog/169315</guid>
      </item>
  </channel>
</rss>