2008年1月18日
#
自己实在是个懒人,blog难得更新一次,更新也是一些鸡毛蒜皮的小东西。不过还是希望能对其他朋友或自己将来遇到类似问题能有个解答。最新在做一个swing项目,客户要求能把JInternalFrame的Title bar去掉,同时还能加回来。由于网上搜一下没有找到解决办法,只能自己研究一下并改了下JInternalFrame,先记录如下:
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Rectangle;
import java.awt.event.ComponentEvent;
import java.awt.peer.ComponentPeer;
import java.beans.PropertyVetoException;
import javax.swing.ActionMap;
import javax.swing.BorderFactory;
import javax.swing.JComponent;
import javax.swing.JDesktopPane;
import javax.swing.JInternalFrame;
import javax.swing.UIManager;
import javax.swing.plaf.InternalFrameUI;
import javax.swing.plaf.basic.BasicInternalFrameUI;
public class MCOCInternalFrame extends JInternalFrame {
//private String lookAndFeel = null;
BasicInternalFrameUI orgUi = null;
BasicInternalFrameUI newUi = null;
JComponent northPanel = null;
private boolean isHidden = false;
public MCOCInternalFrame() {
super();
northPanel = ((javax.swing.plaf.basic.BasicInternalFrameUI) this.getUI()).getNorthPane();
orgUi = ((javax.swing.plaf.basic.BasicInternalFrameUI) this.getUI());
newUi = new BasicInternalFrameUI(this);
}
public void showNorthPanel() {
this.setUI(orgUi);
this.putClientProperty("JInternalFrame.isPalette", Boolean.FALSE);
isHidden = false;
}
public void hideNorthPanel() {
this.setUI(newUi);
((javax.swing.plaf.basic.BasicInternalFrameUI) this.getUI()).setNorthPane(null);
this.putClientProperty("JInternalFrame.isPalette", Boolean.TRUE);
isHidden = true;
}
public void updateUI() {
super.updateUI();
if (isHidden) {
hideNorthPanel();
}
}
}
创建该InternalFrame对象后,通过showNorthPanel(), hideNorthPanel()来显示或隐藏title bar,另外updateUI()重写是因为界面被动态改变lookandfeel时,保证title bar上多的一小个bar出现。
MailSender.java
import java.util.ArrayList;
import java.util.Iterator;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import org.apache.log4j.Logger;
public class MailSender {
public static Logger logger = Logger.getLogger(MailSender.class);
public static boolean send(Mail mail) throws Exception {
try {
Properties props = new Properties();
props.put("mail.smtp.host", "localhost");
Session session = Session.getDefaultInstance(props, null);
MimeMessage mimemessage = new MimeMessage(session);
mimemessage.setFrom(new InternetAddress(mail.getFrom()));
mimemessage.setSentDate(mail.getDate());
// set SUBJECT
mimemessage.setSubject(mail.getSubject());
// set TO address
String mailto = mail.getTo();
String ccmailid = mail.getCcusers();
String strResult = "";
try {
mimemessage.setRecipients(javax.mail.Message.RecipientType.TO,
mailto);
} catch (Exception exception1) {
throw exception1;
}
// set message BODY
MimeBodyPart mimebodypart = new MimeBodyPart();
mimebodypart.setText(mail.getContent());
// attach message BODY
MimeMultipart mimemultipart = new MimeMultipart();
mimemultipart.addBodyPart(mimebodypart);
// attach FILE
ArrayList attachedFileList = mail.getAttachedFileList();
if (attachedFileList != null) {
DataSource ds = null;;
for (Iterator e = attachedFileList.iterator(); e.hasNext();) {
ds = (DataSource) e.next();
mimebodypart = new MimeBodyPart();
try {
mimebodypart.setDataHandler(new DataHandler(
ds));
} catch (Exception exception3) {
throw exception3;
}
mimebodypart.setFileName(ds.getName()); // set FILENAME
mimemultipart.addBodyPart(mimebodypart);
}
}// end if
mimemessage.setContent(mimemultipart);
// set CC MAIL and SEND the mail
if (!mailto.equals("")) {
// set CC MAIL
if (ccmailid != null && (!ccmailid.equals("")))
mimemessage.setRecipients(
javax.mail.Message.RecipientType.CC, ccmailid);
try {
// send MAIL
Transport.send(mimemessage);
logger.info(mailto + " Sent Successfully..........");
} catch (Exception exception4) {
throw exception4;
}
} else {
logger.info(mailto + " Mail operation Failed..........");
}
} catch (Exception e) {
throw e;
}
return true;
}
}
Mail.java
import java.util.ArrayList;
import java.util.Date;
import java.util.StringTokenizer;
public class Mail {
private String from = null;
private String to = null;
private String subject = null;
private String content = null;
private String ccusers = null;
private ArrayList attachedFileList = null;
private Date date = null;
public Mail() {
// TODO Auto-generated constructor stub
}
public ArrayList getAttachedFileList() {
return attachedFileList;
}
public void setAttachedFileList(ArrayList attachedFileList) {
this.attachedFileList = attachedFileList;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getTo() {
return to;
}
public void setTo(String to) {
this.to = to;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public String getCcusers() {
return ccusers;
}
public void setCcusers(String ccusers) {
this.ccusers = ccusers;
}
}