package test.win; import java.awt.Dimension; import java.awt.event.HierarchyBoundsListener; import java.awt.event.HierarchyEvent; import java.io.IOException; import java.io.OutputStream; import java.io.PrintStream; import java.util.Date; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.SpringLayout; import javax.swing.SwingUtilities; public class MyFrame extends JFrame implements Runnable { private JTextArea textArea; private MyFrame thisFrame; public MyFrame() { this.textArea = new JTextArea(); this.thisFrame = this; this.setOut(); this.getContentPane().setLayout(new SpringLayout()); JScrollPane sPane = new JScrollPane(this.textArea); sPane.addHierarchyBoundsListener(new HierarchyBoundsListener() { @Override public void ancestorMoved(HierarchyEvent e) { // TODO Auto-generated method stub } @Override public void ancestorResized(HierarchyEvent e) { // TODO Auto-generated method stub JScrollPane pane = (JScrollPane) e.getSource(); pane.setPreferredSize(new Dimension(thisFrame.getContentPane().getWidth(), thisFrame.getContentPane().getHeight())); } }); this.getContentPane().add(sPane); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(300, 300); this.setLocation(300, 300); this.setVisible(true); } private void appendText(final String text) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { // TODO Auto-generated method stub textArea.append(text); } }); } private void setOut() { OutputStream os = new OutputStream() { @Override public void write(int b) throws IOException { // TODO Auto-generated method stub appendText(String.valueOf((char) b)); } @Override public void write(byte[] b, int off, int len) throws IOException { // TODO Auto-generated method stub appendText(new String(b, off, len)); } @Override public void write(byte[] b) throws IOException { // TODO Auto-generated method stub write(b, 0, b.length); } }; System.setErr(new PrintStream(os, true)); System.setOut(new PrintStream(os, true)); } @Override public void run() { while (true) { // TODO Auto-generated method stub try { Thread.sleep(1000); System.out.println(new Date()); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub new Thread(new MyFrame()).start(); } }
2009/05/30
Redirect System.out & System.err to JTextarea
2009/05/29
Detect another program running status by using socket
import java.io.IOException; import java.io.InputStream; import java.net.InetSocketAddress; import java.net.ServerSocket; import java.net.SocketException; import java.util.ArrayList; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; public class MyFrame extends JFrame { private ServerSocket ss; public MyFrame() { try { // create a new socket and bind it to listen ss = new ServerSocket(); ss.bind(new InetSocketAddress(100)); } catch (SocketException e) { // if this socket is in using, presume the program is running JOptionPane.showMessageDialog(this, "Application already in running."); System.exit(1); } catch (Exception e) { JOptionPane.showMessageDialog(this, "Application encountered some problem."); System.exit(1); } this.getContentPane().add(new JLabel("Hello world!")); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setSize(300, 300); this.setLocation(300, 300); this.setVisible(true); } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub new MyFrame(); } }
2009/05/26
Get multiple screen devices
GraphicsDevice[] devices = GraphicsEnvironment.getLocalGraphicsEnvironment().getScreenDevices();
2009/05/23
CSS priority
<html> <head> <title>CSS priority</title> <style type="text/css"> div#divline { color : blue !important; // this will take higher priority for style display } </style> </head> <body> <div id="divline" style="color:red;">This is a line set font color red using attribute 'style'.</div> </body> </html>
Add attachment as inline resource when sending mail
static void Main(string[] args) { // creat client instance SmtpClient client = new SmtpClient("smtp.mail.com", 25); // create mail message MailMessage message = new MailMessage(); message.From = new MailAddress("from@mail.com", "I'm a sender"); message.To.Add("to@mail.com"); // create attachment instance Attachment attachment = new Attachment(@"C:\about-pic.gif"); // set attachment name (for assign resource name later) attachment.Name = Path.GetFileName(@"C:\about-pic.gif"); attachment.ContentId = "about_pic"; // set attachment same to mail attachment.NameEncoding = message.BodyEncoding; attachment.TransferEncoding = System.Net.Mime.TransferEncoding.Base64; // set attachment as embeded resources attachment.ContentDisposition.Inline = true; attachment.ContentDisposition.DispositionType = System.Net.Mime.DispositionTypeNames.Inline; message.Attachments.Add(attachment); message.Subject = "test attchement"; message.Body = "<html><head><title>test attchemtn</title></head><body style='background-color:#aaaaff;'>" + "<h1>test attchement</h1><img src='cid:"+attachment.ContentId+"' /></body></html>"; message.IsBodyHtml = true; client.Send(message); }
2009/05/17
Create instance using Class
import java.lang.reflect.Constructor; public class Case012 { /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { // TODO Auto-generated method stub // General way to create a new instance // Case012 c = new Case012("dddd"); Class c = Class.forName("sb.test.c010.Case012"); Constructor constructor1 = c.getConstructor(String.class); constructor1.newInstance("test"); Constructor constructor2 = c.getConstructor(int.class, int.class); constructor2.newInstance(10, 20); } public Case012(String s) { System.out.printf("Create instance with string parameter : %s", s); System.out.println(); } public Case012(int x, int y) { System.out.println("Create instance with two int paramters."); System.out.printf("Sum of two number is : %d", x + y); System.out.println(); } }
2009/05/12
Check for multiple textbox size
var JSUtil = { IsTextCountsInRange: function(obj, min, max) { if (obj) { if (typeof (obj) == "string") { var targetElement = document.getElementById(obj); if (targetElement && targetElement.value) { return targetElement.value.toString().length >= min && targetElement.value.toString().length <= max; } else { return false; } } else if (typeof (obj) == "object" && obj.value) { return obj.value.toString().length >= min && obj.value.toString().length <= max; } } else { return false; } } }