Session session = Session.getDefaultInstance(props, null)
Store store = session.getStore("pop3")
store.connect(host, username, password)
Folder folder = store.getFolder("INBOX")
folder.open(Folder.READ_ONLY)
FetchProfile profile = new FetchProfile()
profile.add(UIDFolder.FetchProfileItem.UID)
profile.add(FetchProfile.Item.ENVELOPE)
if (folder instanceof POP3Folder) {
POP3Folder inbox = (POP3Folder) folder
Message message[] = inbox.getMessages()
System.out.println("Messages's length: " + message.length)
for (int i = 0i <message.lengthi++) {
MimeMessage mimeMessage = (MimeMessage) message[i]
String uid = inbox.getUID(mimeMessage)
System.out.println("uid=" + uid)
int UnreadMessageCount = inbox.getUnreadMessageCount()
System.out.println("UnreadMessageCount="+UnreadMessageCount)
int NewMessageCount = inbox.getNewMessageCount()
System.out.println("NewMessageCount="+NewMessageCount)
URLName urlName = inbox.getURLName()
System.out.println("urlName="+urlName)
}
}
}
说先说:你的代码有错误,帆伏在最下面,我已经该过了,不是大问题。如果你想学好java的话,可以根据这个代码加上我的注解去理解,但不要学这个代码的变成方式或者说变成习惯,这个代码基本上无误,但犯了一些常识性问题,如果养成了这些兄轿纤不好的习惯对以后的编程会有坏的影响。
我是英文学的java,所以有些注解可能不通顺,但我尽力而为了。 有的注解有点长,所以你复制到编译器后稍微编辑一下就可以运行。代码是可以运行,没有问题的。
------------------------------------
import javax.swing.*//用来创建图形界面,如窗口,表格,按钮等。
import java.awt.* //作用同上,但已经很少用,能用swing的地方羡仿就不要用awt
import java.awt.event.*//事件管理和控制
import java.sql.* //数据库语句和 *** 作
import java.lang.System//这个不知道
/*下面的这6个没有用,纯属写出来吓人*/
import javax.swing.tree.*
import javax.swing.event.*
import java.util.*
import javax.swing.border.*
import javax.swing.table.*
import java.lang.String.*
class Mywindow extends JFrame implements ActionListener//这个类implements actionlistener,意思就是它自己就可以执行actionListener的任务
{
JTextField txf=new JTextField(20)//建一个文字编辑框,长度20(只可以输入一行文字)
JTextArea jt=new JTextArea(10,30)//建一个文字编辑区域,长10宽30(可以回车然后输入多行文字)
JButton btn1=new JButton("查询")//建一个 查询 按钮
Mywindow()//构造函数,每个类必有的,可以为空
{
JFrame frm=new JFrame("Search")//建一个窗口(让其他的东西有地方可放,和容器一样。是3个最高级别的容器之一,其他两个是applet和window)
frm.setBounds(400,300,450,350)//设置大小和位置,前两个是坐标,后两个是大小
Container con=getContentPane()//建一个awt容器对象,用来添加其他元素,最好用这个添加元素。像:frm.add(all)可以写成 con.add(all)
JPanel pnl4=new JPanel()//建一个面板用来添加其他元素(第二级别容器,最后需要被添加在frame上)
pnl4.setBorder(BorderFactory.createTitledBorder("Search"))//设置边框样式
pnl4.add(txf)//把文字编辑框添加到面板上
pnl4.add(btn1)//把按钮添加到面板上
btn1.addActionListener(this)//添加事件行为监听器(this),this意思是当前对象,呼应 implements ActionListener
JPanel pnl5=new JPanel()//同上
pnl5.setBorder(BorderFactory.createTitledBorder("Result"))//同上
jt.setWrapStyleWord(true)//这个忘了
jt.setLineWrap(true)//在区域规定的宽度下,如果文字的输入到一行最后则会自动令其一行继续,如果是(false),文字输入就会在这一行继续知道回车
pnl5.add(new JScrollPane(jt))//个这个面板添加右侧滚动条,当文字输入超过 长* 宽后 滚动条出现
JPanel all=new JPanel()//同上
all.setLayout(new BorderLayout())//设置布局,borderlayout()分东西南北(上下左右)中五个部分 无论窗口多大,中间占得面积最大
all.add(pnl4,BorderLayout.NORTH)//添加一个面板在上面
all.add(pnl5,BorderLayout.CENTER)//添加一个在中间
frm.add(all)//把最大的这个面板添加到窗口上 也可以用con.add(all)
frm.setVisible(true)//设置窗口显示属性 如果false就是不显示
frm.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0)}})//加一个窗口监听 如果点小红叉关闭窗口则系统推出
}
public void actionPerformed(ActionEvent e)//作为ActionListener类的构造函数,如果你的class implements ActionListenser, 那就必须得有这个,也可以单独写一个class,不过有点麻烦
{
if(e.getSource()==btn1)//当按钮被点击的时候
{
String str=""//建一个字符串
String tmp=this.txf.getText()//同上,这个字符串的值是当前对象(窗口)中,文本框输入的值
for(int k=0k<tmp.length()k++)//建一个 永久循环
str+=tmp.charAt(k)+"%"//把 % 插入每一个字符后面, 作用后面说
String sql=null//同上
Statement stmt=null//定义一个stmt,用来建数据库连接的
sql="select * from chinese where charsound like'"+str+"'"//创建一个sql数据库语句,但它本身还是一个字符串
System.out.println(sql)//系统显示创建的语句,通常找错时候用的
try{//try 和 catch 的作用一句两句说不清楚 不知道你就自己查查
Class.forName("com.mysql.jdbc.Driver")//或者:Class.forName("org.gjt.mm.mysql.Driver")关联mysql数据库驱动
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost/japan?user=root&password=sa")//建立连接,数据库名japan(为什么不是chinese?)用户名root密码sa
stmt=conn.createStatement()//建立statement对象,用来发送sql语句到数据库
ResultSet rs=stmt.executeQuery(sql)//运行语句并建立一个查询结果的集合
System.out.println("\n------------------------search :"+str+"-------------------------------")//同上
jt.setText("")//清空文本编辑区域
while(rs.next())//while循环,当还有结果的时候,把所有查询结果添加加到文本编辑区域中
{
jt.append(new String(rs.getString("charname").getBytes("iso-8859-1"),"gb2312")+"\t")
System.out.print(new String(rs.getString("charname").getBytes("iso-8859-1"),"gb2312")+"\t")
}
stmt.close()//关闭关连,很重要。
}
catch(Exception eq){System.out.println("error")}
//--------------------------------------------------------------end btn1-------
}
}
public static void main(String args[])
{
Mywindow win=new Mywindow()//建立一个 mywindow 对象
win.pack()//将所有元素整合
win.show()
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)