การ RIGHT JOIN สองตารางใน MySql

การ join เป็นการนำข้อมูลมากกว่า 2 ตารางขึ้นไป มาเชื่อมโยงกัน โดยตารางเหล่านั้นต้องมีจุดเชื่อมต่อ หรือ key เหมือนกันด้วย ไม่งั้นจะไม่สามารถเชื่อมต่อกันได้
RIGHT JOIN จะทำการอ้างอิงตารางที่2 เป็นสำคัญ ถ้าตารางที่ 1 ไม่มีข้อมูล ตารางที่ 2 ก็ยังถูกสนใจและนำมาแสดงผล
ตารางตัวอย่าง
Table  :  user
id_usernameage
0001Tana  Ton19
0002Bank  Wong25
0003Jay  Long15
0004Oom  Wan14

Table  :  salary
dateid_usersalarycommission
10/11/56000115,5003,000
12/12/56000115,6001.500
20/12/56000210,0004,000
10/12/56000312,0003,500
10/01/56000310,0002,000
10/02/5600055,000300

วิธีการเขียน
SELECT user.*,salary.* FROM user
RIGHT JOIN salary  ON user.id_user= salary .id_user
หรือ
SELECT user.*,salary.* FROM user
RIGHT JOIN salary  ON user.id_user= salary .id_user
WHERE salary .id_user  = '0005'
ตัวอย่างการเขียนที่นำไปใช้จริง
<?php
 $SQL="  SELECT user.*,salary.* FROM user
              RIGHT JOIN salary  ON user.id_user= salary .id_user
  ";
 $QUERY= mysql_query($SQL) or die ("Error Query [".$SQL."]");    
?>
 <table width="100%" >
   <tr>
     <td bgcolor="#FFFFFF" width="50" align="center">    Id     </td>
     <td bgcolor="#FFFFFF"  width="573" align="center">      Name      </td>
     <td bgcolor="#FFFFFF" width="100" align="center">     Salary    </td>
   </tr>

 <?php while($rs=mysql_fetch_array($QUERY))  {      ?>

   <tr>
     <td  align="center">     <?=$rs['id_user'];  ?>      </td>
     <td  align="center">   <?=$rs['name'];?>  </td>
     <td  align="center">   <?=$rs['age'];?>         </td>
     <td  align="center">   <?=$rs['salary'];?>         </td>
     <td  align="center">   <?=$rs['commission'];?>         </td>
   </tr>
   <?  } ?>
 </table>    
ผลลัพธ์ตัวอย่าง
nameagedateid_usersalarycommission
NULLNULL10/02/5600055,000300

การ INNER JOIN สองตารางใน MySql

การ join เป็นการนำข้อมูลมากกว่า 2 ตารางขึ้นไป มาเชื่อมโยงกัน โดยตารางเหล่านั้นต้องมีจุดเชื่อมต่อ หรือ key เหมือนกันด้วย ไม่งั้นจะไม่สามารถเชื่อมต่อกันได้
INNER JOIN เลือกเฉพาะข้อมูลที่มี key ตรงกันเท่านั้นมาแสดง
ตารางตัวอย่าง
Table : TABLE_USER
idName
1Tomsun
2Songkarn
3Joney
4Mon
5Boy

Table : TABLE_SALARY
idSalary
146,000
23,500
52,180
6180
74,320

วิธีการเขียน INNER JOIN
SELECT *  FROM
TABLE_USER INNER JOIN TABLE_SALARY
ON  TABLE_USER.id = TABLE_SALARY.id

ตัวอย่างการเขียนที่นำไปใช้จริง
<?php
    include "connect.php";
 $SQL="  SELECT *  FROM
          TABLE_USER INNER JOIN TABLE_SALARY
           ON  TABLE_USER.id = TABLE_SALARY.id  ";
 $QUERY= mysql_query($SQL) or die ("Error Query [".$SQL."]");    
?>
 <table width="100%" >
   <tr>
     <td bgcolor="#FFFFFF" width="50" align="center">    Id     </td>
     <td bgcolor="#FFFFFF"  width="573" align="center">      Name      </td>
     <td bgcolor="#FFFFFF" width="100" align="center">     Salary    </td>
   </tr>

 <?php while($rs=mysql_fetch_array($QUERY))  {      ?>

   <tr>
     <td  align="center">     <?=$rs['id'];  ?>      </td>
     <td  align="center">   <?=$rs['Name'];?>  </td>
     <td  align="center">   <?=$rs['Salary'];?>         </td>
   </tr>
   <?  } ?>
 </table>    
ผลลัพธ์ตัวอย่าง
idNameSalary
1Tomsun46,000
2Songkarn3,500
5Boy3,500
จะเห็นได้ว่า ข้อมูลที่มี id เหมือนกันทั้งสองตาราง จะถูกแสดงข้อมูลออกมา ส่วนid ที่ไม่เหมือนกันทั้งสองตาราง จะไม่ถูกนำออกมาแสดงค่า

การ LEFT JOIN สองตารางใน MySql

การ join เป็นการนำข้อมูลมากกว่า 2 ตารางขึ้นไป มาเชื่อมโยงกัน โดยตารางเหล่านั้นต้องมีจุดเชื่อมต่อ หรือ key เหมือนกันด้วย ไม่งั้นจะไม่สามารถเชื่อมต่อกันได้
LEFT JOIN จะทำการอ้างอิงตารางแรกก่อนเป็นสำคัญ ถ้าตารางแรกไม่มีข้อมูล จะไม่สนใจตารางที่ 2  สนใจแต่ข้อมูลตารางแรกเท่านั้น
ตารางตัวอย่าง
Table  :  user
id_usernameage
0001Tana  Ton19
0002Bank  Wong25
0003Jay  Long15
0004Oom  Wan14

Table  :  salary
dateid_usersalarycommission
10/11/56000115,5003,000
12/12/56000115,6001.500
20/12/56000210,0004,000
10/12/56000312,0003,500
10/01/56000310,0002,000
10/02/5600055,000300

วิธีการเขียน
SELECT user.*,salary.* FROM user
LEFT JOIN salary  ON user.id_user= salary .id_user

ตัวอย่างการเขียนที่นำไปใช้จริง
<?php
 $SQL="  SELECT user.*,salary.* FROM user
              LEFT JOIN salary  ON user.id_user= salary .id_user
  ";
 $QUERY= mysql_query($SQL) or die ("Error Query [".$SQL."]");    
?>
 <table width="100%" >
   <tr>
     <td bgcolor="#FFFFFF" width="50" align="center">    Id     </td>
     <td bgcolor="#FFFFFF"  width="573" align="center">      Name      </td>
     <td bgcolor="#FFFFFF" width="100" align="center">     Salary    </td>
   </tr>

 <?php while($rs=mysql_fetch_array($QUERY))  {      ?>

   <tr>
     <td  align="center">     <?=$rs['id_user'];  ?>      </td>
     <td  align="center">   <?=$rs['name'];?>  </td>
     <td  align="center">   <?=$rs['age'];?>         </td>
     <td  align="center">   <?=$rs['salary'];?>         </td>
     <td  align="center">   <?=$rs['commission'];?>         </td>
   </tr>
   <?  } ?>
 </table>    
ผลลัพธ์ตัวอย่าง
id_usernameagesalarycommission
0001Tana  Ton1915,5003,000
0001Tana  Ton1915,6001.500
0002Bank  Wong2510,0004,000
0003Jay  Long1512,0003,500
0003Jay  Long1510,0002,000

การ Update แก้ไขข้อมูลให้เป็นปัจจุบัน MySql

การ UPDATE เป็นการอัพเดทข้อมูลที่มีอยู่แล้ว หรือจะเรียกว่าแก้ไขข้อมูลเดิมก็ได้ครับ ซึ่งการอัพเดทจำเป็นต้องมี id หรือรหัสของฟิวส์ที่จะอัพเดท เพื่อให้ทราบว่าเราจะอัพเดทฐานข้อมูลของแถวไหน
โดยมีวิธีการเขียนดังนี้ั
วิธีการเขียนตัวอย่างการเขียน
ข้อมูล="1";
$sql="update  ชื่อตาราง  SET
            ฟิลด์1 ='".$_POST['ข้อมูล1']."',
            ฟิลด์2 ='".$_POST['ข้อมูล2']."',
            ฟิลด์3 ='".$_POST['ข้อมูล3']."',
            ฟิลด์4 ='".$_POST['ข้อมูล4']."',
            ฟิลด์5 ='".$_POST['ข้อมูล5']."',
            ฟิลด์6 ='".$_POST['ข้อมูล6']."'

            where  ฟิลด์ id =' ข้อมูล ' ";
mysql_db_query($db_name , $sql);
$data="1";
$sql="update  INTO  user   SET
            db_1 ='".$_POST['data1']."',
            db_2 ='".$_POST['data2']."',
            db_3 ='".$_POST['data3']."',
            db_4 ='".$_POST['data4']."',
            db_5 ='".$_POST['data5']."',
            db_6 ='".$_POST['data6']."'
            where  db_id='$data' ";
mysql_db_query($db_name , $sql);


การ INSERT เพิ่มข้อมูลเข้าฐานข้อมูล MySql

การ INSERT เป็นการเพิ่มข้อมูลเข้าสู่ฐานข้อมูล Mysql ซึ่งข้อมูลที่ส่งค่าไปจะบันทึกลงฟิลด์ที่อยู่ในตาราง ซึ่งถูกกำหนดไว้
โดยมีวิธีการเขียนดังนี้ั
วิธีการเขียนตัวอย่างการเขียน
$sql="INSERT INTO  ชื่อตาราง  SET
            ฟิลด์1 ='".$_POST['ข้อมูล1']."',
            ฟิลด์2 ='".$_POST['ข้อมูล2']."',
            ฟิลด์3 ='".$_POST['ข้อมูล3']."',
            ฟิลด์4 ='".$_POST['ข้อมูล4']."',
            ฟิลด์5 ='".$_POST['ข้อมูล5']."',
            ฟิลด์6 ='".$_POST['ข้อมูล6']."'
            ";
mysql_db_query($db_name , $sql);
$sql="INSERT INTO  user   SET
            db_1 ='".$_POST['data1']."',
            db_2 ='".$_POST['data2']."',
            db_3 ='".$_POST['data3']."',
            db_4 ='".$_POST['data4']."',
            db_5 ='".$_POST['data5']."',
            db_6 ='".$_POST['data6']."'
            ";
mysql_db_query($db_name , $sql);

การ Delete ลบข้อมูลออกจากฐานข้อมูล MySql

การ DELETE เป็นการลบข้อมูลที่มีอยู่แล้ว ออกจากฐานข้อมูล ซึ่งการลบข้อมูลใช้ฟังก์ชัน delete  ซึ่งถือเป็นหนึ่งในฟังก์ชันที่สำคัญมาก สำหรับการออกแบบระบบ
โดยมีวิธีการเขียนดังนี้ั
1.ลบข้อมูลทั้งตาราง
วิธีการเขียนตัวอย่างการเขียน
$sql="delete   from  ชื่อตาราง  ";
$query=mysql_query($sql) or die ("Error [".$sql."] ");
mysql_db_query($db_name , $sql);
$sql="delete   from  table1";
$query=mysql_query($sql) or die ("Error [".$sql."] ");
mysql_db_query($db_name , $sql);
2.ลบข้อมูลเฉพาะบางแถวเท่านั้น
วิธีการเขียนตัวอย่างการเขียน
ข้อมูล="1";
$sql="delete from  ชื่อตาราง  where ชื่อฟิลด์='ข้อมูล' ";
$query=mysql_query($sql) or die ("Error [".$sql."] ");
mysql_db_query($db_name , $sql);
$data="1";
$sql="delete from  ชื่อตาราง  where id='$data' ";
$query=mysql_query($sql) or die ("Error [".$sql."] ");
mysql_db_query($db_name , $sql);

การ Select Query ดึงข้อมูลออกมาแสดง MySql

การ Select Query หรือ การดึงข้อมูลออกมาแสดง  ซึ่งเป็นพื้นฐานของ mysql ในการ Select ข้อมูลที่อยู่ในตารางออกมาแสดงออกทางหน้าจอ
มีวิธีการเขียนดังนี้
แบบที่1 แสดงข้อมูลทุกแถวในฐานข้อมูล
วิธีการเขียนตัวอย่าง
$query = "SELECT * FROM  ชื่อตาราง  ";
if ($result = mysql_query($query)) {
     while ($row = mysql_fetch_array($result)) {

           $row['ชื่อฟิลด์'];  
      }
}
$query = "SELECT * FROM  user";
if ($result = mysql_query($query)) {
     while ($row = mysql_fetch_array($result)) {

           $row['username'];  
      }
}
แบบที่2 แสดงข้อมูลทุกแถวในฐานข้อมูล
วิธีการเขียนตัวอย่าง
$sql = "SELECT * FROM  ชื่อตาราง  ";
$query=mysql_query($sql) or die ("Error[".$sql."]");

while ($rs = mysql_fetch_array($query)) {

           $rs['ชื่อฟิลด์'];  
 }
$sql = "SELECT * FROM  user";
$query=mysql_query($sql) or die ("Error[".$sql."]");

while ($rs = mysql_fetch_array($query)) {

           $rs['username'];  
 }
แบบที่3 แสดงข้อมูลเพียง 1 แถวในฐานข้อมูล
วิธีการเขียนตัวอย่าง
$sql = "SELECT * FROM  ชื่อตาราง  ";
$query=mysql_query($sql) or die ("Error[".$sql."]");

$rs = mysql_fetch_array($query) ;

           $rs['ชื่อฟิลด์'];  
$sql = "SELECT * FROM  user";
$query = mysql_query($sql) or die ("Error[".$sql."]");

$rs = mysql_fetch_array($query) ;

           $rs['username']; 

แนะนำภาษา HTML เบื้องต้น

HTML เป็นภาษาแรกของการของการสร้างเว็บไซต์เลยก็ว่าได้ เพราะเรียนรู้ได้ง่าย เขียนได้ง่าย จึงเป็นภาษาอันดับต้นๆที่นักโปรแกรมเมอร์ฝึกหัดหรือบุคคลทั่วไปนิยมเขียนขึ้นมา
ต้นกำเนิดของภาษา HTML ค.ศ. 1961 อินเตอร์เน็ตได้เกิดและเติบโตขึ้น พร้อมกับภาษาคอมพิวเตอร์และโปรโตคอล (Protocol) จำนวนมาก เพื่อรองรับกับ การเติบโตอย่างรวดเร็วของอินเตอร์เน็ต หนึ่งในภาษาคอมพิวเตอร์และโปรโตคอลนั้นคือ ภาษา HTML และ TCP/IP (Transmission Control Protocol/ Internet Protocol) ทั้งนี้เพราะ World Wide Web แม้จะเป็นเพียงส่วนหนึ่งของอินเตอร์เน็ต แต่ได้รับความนิยม อย่างสูง และรวดเร็ว โปรโตคอล HTTP (ซึ่งเป็นส่วนย่อยของโปรโตคอล TCP/IP) จึงได้รับการพัฒนาเพื่อสนับสนุนภาษา HTML ซึ่ง ใช้ในการจัดเก็บเอกสารบน World Wide Web
                HTML     เป็นตัวย่อมาจาก   Hypertext Markup Language     เป็นภาษาหลักที่ใช้ในการแสดงผลบนเว็บ บราวเซอร์ในอินเตอร์   โดยสามารถนำเสนอข้อมูลตัวอักษร รวมทั้งเชื่อมต่อเพื่อ แสดงภาพ , เสียง และไฟล์ในรูปแบบอื่นๆ
ภาษา HTML จะแบ่งออกเป็น 2 ส่วน คือ
                1. ส่วนของคำสั่ง (tag) เป็นส่วนที่กำหนดรูปแบบของข้อความที่แสดง ซึ่งเราเรียกว่าTag โดยจะอยู่ในเครื่องหมาย < ... >  เช่น <div>....</div>   ,  <p>.....</p>
                2. ส่วนของบทความทั่วๆไป เป็นส่วนของข้อความที่เราต้องการแสดงผล เช่น ข้อความ "ทดสอบ"
ตัวอย่างการใช้งานภาษา HTML
<html>
    <head>
        <title> สร้างเว็บไซต์เริ่มต้นที่นี้ </title>
    </head>

    <body>
             การสร้างเว็บไซต์ไม่ยากอย่างที่คิด
             <p>พัฒนาเว็บโดย</p>
             <b>การใช้โปรแกรม</b>
    </body>
</html>

CSS คืออะไร

CSS (Cascading Style Sheet) หรือเรียกกันว่า สไตล์ชีต ซึ่งถือเป็นชุดคำสั่งที่ใช้ในการออกแบบ หรือสำหรับจัดรูปแบบการแสดงเนื้อหาภายในเว็บเพจ ได้แก่ โครงร่างเว็บไซต์ การออกแบบบล็อคใส่ข้อความ รูปภาพ ตัวอักษร บุลเล็ต ใส่สีกรอบ สีตาราง เป็นต้น  ช่วยให้สามารถจัดรูปแบบของเว็บไซต์ได้สวยขึ้น และสามารถนำไปใช้ในแต่ลเพจได้เหมือนกัน โดยไม่ต้องมาสร้างทีละเพจ สะดวกมากต่อการใช้งาน
ประเภทของ CSS 
1.Class Style เป็นสไตล์ที่ใช้กำหนดคุณสมบัติของออบเจ็คทีละตำแหน่ง  โดยจะไม่มีผลต่อคุณสมบัติของออบเจ็คอื่นๆ บนเว็บเพจ การกำหนดสไตล์ชีตประเภทนี้จึงต้องกำหนดทีละตำแหน่ง
2.Tag Style ถือเป็นสไตล์ที่ใช้กำหนดไว้กับแท็ก จะมีผลในทุกออบเจ็คซึ่งอยู่ในแท็กนั้นทั้งหมด
3.Advanced สไตล์ที่นอกเหนือจากรูปแบบข้างต้น นั้นคือสามารถกำหนดคุณสมบัติของออบเจ็คทีละตำแหน่ง คล้ายๆกับ Class Style แต่อาจจะมีวิธีการใช้คำสั่งคนละแบบ

ตัวอย่างเว็บที่เขียนด้วย HTML 5

พบกับตัวอย่างเว็บไซต์ที่เขียนด้วย HTML5 ซึ่งมีความยอดเยี่ยม ทั้งเว็บไซต์ด้านกราฟฟิก เว็บไซต์เกมที่สร้างจากHTML5 เว็บสร้างสรรค์งานแอพลิเคชัน ซึ่งได้แก่
เว็บไซต์ The Wilderness Downtown ออกแบบโดย HTML5
http://www.thewildernessdowntown.com/
               The Wilderness Downtown เว็บไซต์ที่มี  Interactive  Multimedia Video  ยอดเยี่ยมโดยใช้  HTML5
มิวสิควิดีโอจัดทำโดยChris Milk ใช้เพลงจากอัลบั้ม Arcade Fire
เว็บไซต์ The  Agent008 ออกแบบโดย HTML5http://agent8ball.com/
              The  Agent008  เว็บไซต์เกมที่สร้างโดย Pixel  Labs  ใช้ HTML 5   ในการพัฒนาผู้ใช้สามารถสนุกกับ    การเล่นเกมส์สนุกเกอร์ที่อยู่บนหน้า จอคอมพิวเตอร์ โดยได้จำเป็นต้องใช้  Flash Player
เว็บไซต์The Lost World’s Fair site ออกแบบโดย HTML5http://lostworldsfairs.com/
              The Lost World’s Fair site เว็บไซต์ที่พัฒนาโดยใช้ HTML5 เพื่อจำลองสถานที่ต่างๆบนโลกขึ้นบนเว็บไซต์เสมือนผู้ใช้งานเดินทางไปยังสถานที่นั้นๆ อย่างคร่าวๆ  

เว็บไซต์ Ben the Bodyguard  ออกแบบโดย HTML5http://benthebodyguard.com/index2.php
              Ben the Bodyguard เว็บไซต์เพื่อโปรโมท Nerd Communications iPhone Security App แอพริเคชั่นบน iPhone   ที่ใช้เพื่อป้องกันข้อมูลบนโทรศัพท์มือถือของผู้ใช้งาน
เว็บไซต์ 20ThingsILearned ออกแบบโดย HTML5http://www.20thingsilearned.com/en-US
             20ThingsILearned ถูกพัฒนาโดยทีมงาน Google Chrome ด้วย HTML5 เพื่ออธิบายวิธีการทำงานของเว็บไซต์ โดยมีลักษณะคล้าย eBook ที่สามารถโต้ตอบกับผู้ใช้งานได้
เว็บไซต์ This Shell  ออกแบบโดย HTML5http://www.thisshell.com/
          This Shell เว็บไซต์ที่สร้างโดยใช้ HTML5โดย Legwork Studios เพื่อโปรโมทอัลบั้มเพลงของ  Parts เว็บไซต์ได้นำเสนอรูปแบบใหม่ให้กับวิดีโ  โดยการแบ่งวิดีโอออก เป็นส่วนๆ และผู้ใช้สามารถดาวน์โหลดเพลงได้ฟรี
เว็บไซต์ AX VISUAL DESIGN STUDIO ออกแบบโดย HTML5http://axvisual.com/
              AX VISUAL DESIGN STUDIO เว็บสร้างสรรค์งานแอพลิเคชัน การพัฒนาบริการโทรศัพท์มือถือและภาพการบริการขององค์กรให้คำปรึกษา

HTML5 คืออะไร

HTML5 เป็นภาษาที่ถูกพัฒนาขึ้นเพื่อเป็นภาษามาร์กอัปสำหรับ WWW รุ่นต่อไปของ HTML ถูกพัฒนาขึ้นในปี 2004 โดยกลุ่ม WHATWG(The Web Hypertext Application Technology Working Group) โดยเรียกชื่อว่า Web applications 1.0 โดยดราฟต์แรกได้ปรากฏออกมาเมื่อ 22 มกราคม พ.ศ. 2551  โดย HTML5 จะช่วยลดการใช้พวกปลั๊กอินพิเศษอย่างพวก Adobe Flash, Microsoft Silverlight, Apache Pivot และ Sun JavaFX HTML5 มาพร้อมกับองค์ประกอบ และคุณลักษณะใหม่ ๆ ที่แสดงให้เห็นการใช้งานทั่ว ๆ ไปของเว็บไซต์ต่าง ๆ ในปัจจุบัน หรือพูดง่าย ๆ ก็คือเอามาแทนที่ตัวเดิม ๆ ที่เราเคยใช้กันอย่างเช่น div และ span
            เทคโนโลยีใน HTML5 แทบไม่มีอะไรใหม่ในโลกไอทีเลย เพราะเกือบทุกอย่างที่ HTML5 ทำได้ อยู่ในกระบวนการพัฒนาโปรแกรมแบบ native มาช้านานแล้ว เช่น การทำงานแบบออฟไลน์ หรือ การวาดกราฟิก เพียงแต่ HTML5 นำเทคโนโลยีที่เคยอยู่ในโลก native ย้ายเข้ามาสู่โลกของเว็บ ทำให้มันมีข้อดีของทั้งสองโลก คือ ฟีเจอร์อันร่ำรวยและประสิทธิภาพในการทำงานจากโลก native มาผสานกับความคล่องตัว เข้าถึงได้จากทุกที่ของเว็บเดิมที ภาษาตระกูล HTML/SGML เป็นภาษาที่ออกแบบมาเพื่อ "อธิบาย" หรือ "นิยาม" การแสดงผลข้อมูล เช่น ตัวหนา ตัวเอียง หัวเรื่อง ลิงก์ ซึ่งการใช้งานก็คือเอาไว้ทำเอกสารที่เชื่อมโยงกัน (ตัวอย่างคือ Help ของวินโดวส์) พอมีอินเทอร์เน็ต HTML ก็ทำหน้าที่สร้าง "โบวชัวร์อิเล็กทรอนิกส์" ที่สามารถดูได้จากระยะไกล ถึงแม้ตอนแรกจะมีแต่ข้อความ แต่ระยะต่อๆ มาเทคโนโลยีเว็บก็พัฒนามากขึ้น สามารถใส่ภาพ เสียง วิดีโอ (ผ่านปลั๊กอิน) มีแนวคิดเชิงโปรแกรมอย่างจาวาสคริปต์เข้ามา (จริงๆ มี VBScript ด้วยแต่ดังสู้ไม่ได้) ในยุคของ HTML3 พอเป็นยุคของ HTML4 เราเริ่มเห็นเว็บแบบที่ตอบโต้ได้ มีความเป็นอินเตอร์แอคทีฟมากขึ้น ซึ่งเกิดจากเทคโนโลยีอย่าง AJAX, XMLHttpRequest ทำให้เว็บมีความใกล้เคียงกับ "แอพ" แบบดั้งเดิมมากขึ้น อย่างไรก็ตาม มันยังสู้แอพแบบ native ไม่ได้ เพราะยังขาดฟีเจอร์สำคัญๆ อีกหลายอย่าง เช่น การทำงานออฟไลน์ กราฟิกสามมิติ ฯลฯ นั่นเอง
             สุดท้ายแล้ว HTML5 จะช่วยให้เรานำเทคโนโลยีจากโลกของเว็บ มาสร้างแอพที่มีลักษณะใกล้เคียงกับแอพแบบ native (ไม่ว่าจะบนพีซีหรือมือถือได้) ตัวอย่างที่ชัดเจนที่สุดในตอนนี้คือ PhoneGap ซึ่งเป็นเครื่องมือพัฒนาแอพมือถือด้วย HTML5

คลาส Button ของภาษาjava

Button เป็นคลาสที่ใช้ในการสร้างออปเจ็คที่แสดงเป็นปุ่ม โดยจะมีข้อความ (label) ปรากฎอยู่บนปุ่ม
Button เป็นคลาสที่สืบทอดมาจากคลาส Component
Constructor ของคลาส Button ที่สำคัญมีดังนี้
     -public Button()
     -public Button(String label)
คลาส Button มีเมธอดที่สำคัญในการจัดการกับข้อความดังนี้
     -public void setLabel(String label)
     -public String getLabel()

FlowLayout ของภาษาjava

FlowLayout เป็นการจัดวางผังส่วนประกอบกราฟฟิกไว้ตำแหน่งบนสุดของออปเจ็คของคลาสประเภท Container โดยจะเรียงออปเจ็คของคลาสที่เป็นส่วนประกอบกราฟฟิกจากซ้ายไปขวา
ถ้าความกว้างของออปเจ็คของคลาสประเภท Container ในแต่ละแถวไม่พอ ตัวจัดวางผังแบบ FlowLayout จะนำออปเจ็คของคลาสที่เป็นส่วนประกอบที่เหลือวางในตำแหน่งถัดไปด้านล่าง
การจัดวางผังแบบ FlowLayout จะปรับขนาดของออปเจ็คของคลาสที่เป็นส่วนประกอบกราฟฟิกต่างๆตามความเหมาะสม ทั้งนี้ขึ้นอยู่กับข้อกำหนดต่างๆอาทิเช่น ขนาดของออปเจ็คของคลาส Button จะมีขนาดตามขนาดของข้อความบนปุ่ม เป็นต้น
ตัวอย่างโปรแกรมแสดง FlowLayout
import java.awt.*;

public class FlowLayoutSample {
                    private Frame fr;
                    public static void main(String args[]) {
                                                FlowLayoutSample sf = new FlowLayoutSample();
                                                sf.init();
                                 }
                    public void init() {
                                                fr = new Frame("Button Sample");
                                                fr.setLayout(new FlowLayout());
                                                Button bn1 = new Button("Submit");
                                                Button bn2 = new Button("Cancel");
                                                Button bn3 = new Button("Exit");
                                           fr.add(bn1);
                                                                fr.add(bn2);
                                                                fr.add(bn3);
                                                                fr.setSize(200,150);
                                                                fr.show();
                                }
}
ผลลัพธ์
ตัวอย่างโปรแกรมแสดง FlowLayout ในภาษาjava

เมธอด setLayout() ของภาษาjava

เราสามารถที่จะกำหนดการวางผังโดยการเรียกใช้เมธอดที่ชื่อ setLayout()ของคลาสประเภท Container โดยส่งผ่าน argument ที่เป็นออปเจ็คประเภท LayoutManager ที่สร้างขึ้นมา ตัวอย่างเช่นคำสั่ง
    -Frame fr = new Frame("Demo”);
    -FlowLayout fl = new FlowLayout();
    -fr.setLayout(fl);
    หรือ
    -Frame fr = new Frame("Demo”);
    -fr.setLayout(new FlowLayout());
โดยทั่วไปคลาสประเภท Container แต่ละชนิด จะมีการกำหนดวิธีการวางผังของออปเจ็คของคลาสแต่ละชนิดไว้เริ่มต้นอยู่แล้วดังนี้
    -คลาส Window, Frame และ Dialog จะกำหนดให้เป็น BorderLayout
    -คลาส Panel และ Applet จะกำหนดให้เป็น FlowLayout

คลาส Panel ของภาษาjava

คลาส Panel จะเป็นคลาสประเภท Container เช่นเดียวกับคลาส Frame
แตกต่างจาก Frame ตรงที่ไม่มี title bar และ resizable corner
คลาส Panel จะมี subclass ที่ชื่อ Applet ซึ่งใช้ในเขียนโปรแกรมจาวาแอปเพล็ต
คลาส  Panel สามารถที่จะใส่ลงไปใน Frame ได้

คลาส Frame ของภาษาjava

คลาส Frame ในภาษาjava
คลาส Frame จะมีรูปแบบของ constructor ที่สำคัญดังนี้
    -public Frame()
    -public Frame(String title)
คลาส Frame จะมีเมธอดที่เกี่ยวข้องกับการปรับขนาดของเฟรมดังนี้
     -boolean isResizable()
     -void setResizable(boolean canResize)
ตัวอย่างโปรแกรมแสดง Frame
import java.awt.*;
  public class FrameDemo {
                                public static void main(String args[]) {
                                    Frame fr = new Frame("Frame Demo");
                                    fr.setSize(200,200);
                                    fr.show();                                                                       
                                }
                }         
อธิบายตัวอย่างโปรแกรม  
คำสั่ง Frame fr = new Frame(“Frame Demo”); เป็นคำสั่งที่ใช้ในการสร้างออปเจ็คของคลาส Frame
เมธอด setSize()เป็นเมธอดที่ใช้ในการกำหนดขนาดของ Frame
เมธอด show() เป็นเมธอดที่ใช้ในการแสดง Frame ที่สร้างไว้

การจัดการกับข้อผิดพลาด (Exception Handling) ในภาษาjava

โปรแกรมภาษาจาวาแบ่งข้อผิดพลาดที่อาจเกิดขึ้นขณะรันโปรแกรมเป็นสอง ประเภทคือ
Error เป็นข้อผิดพลาดที่ไม่สามารถแก้ไขและจัดการได้ เช่น  VirtualMachineError,OutOfMemoryError
Exception เป็นข้อผิดพลาดที่สามารถแก้ไขหรือจัดการได้ เช่น       ArrayIndexOutOfBoundsException, FileNotFoundException
ข้อผิดพลาดในภาษาจาวาจะกำหนดเป็นออปเจ็คของคลาสต่างๆ โดยมีคลาส Throwable เป็นคลาสราก
คลาสประเภท Exception
Exception เป็นข้อผิดพลาดที่เกิดในขณะรันโปรแกรมภาษาจาวา  Exception แบ่งออกเป็นสองประเภท คือ  RuntimeException และ IOException
RuntimeException เป็นข้อผิดพลาดที่อาจหลีกเลี่ยงได้หากมีการเขียนโปรแกรมที่ถูกต้อง
IOException เป็นข้อผิดพลาดที่ภาษาจาวากำหนดให้ต้องมีการจัดการ หากมีการเรียกใช้เมธอดที่อาจเกิดข้อผิดพลาดประเภทนี้ได้
คลาสประเภท Exception ที่สำคัญและพบบ่อย
ArithmeticException
ArrayIndexOutOfBoundsException
EOFException
FileNotFoundException
InterruptedException
IOException
NullPointerException
NumberFormatException
ตัวอย่างโปรแกรมที่อาจเกิดข้อผิดพลาด
public class ExceptionDemo {
  public static void main(String args[]) {
  System.out.println(args[2]);
  System.out.println("Hello");
  }
}
คำสั่ง try..catch
ภาษาจาวามีคีย์เวิร์ด try ที่เป็นคำสั่งที่ใช้ในการจัดการกับเมธอดหรือคำสั่งที่อาจเกิดข้อผิดพลาดซึ่งจะส่งออปเจ็คประเภท Exception ในขณะรันโปรแกรม
รูปแบบ
                                                try {
                                                [statements]
                                                }
โปรแกรมภาษาจาวาจะสั่งงานชุดคำสั่งที่อยู่ในบล็อกทีละคำสั่ง และหากเกิดข้อผิดพลาดขึ้นในคำสั่งประเภทใดก็จะมีการส่งออปเจ็คของข้อผิดพลาดประเภท Exception นั้นขึ้นมา
ในกรณีที่ต้องการจัดการกับข้อผิดพลาดที่เกิดขึ้น โปรแกรมจะต้องมีชุดคำสั่งอยู่ในบล็อกของคีย์เวิร์ด catch ที่จะระบุชนิดของออปเจ็คในคลาสประเภท Exception ที่ต้องการจัดการ
รูปแบบ
                                                catch(ExceptionType argumentName){
                                                [statements]
                                                }
ตัวอย่างโปรแกรมที่มีการจัดการกับข้อผิดพลาด
public class ExceptionHandlingDemo {
                public static void main(String args[]) {
                                try {
                                                System.out.println(args[2]);
                                } catch(ArrayIndexOutOfBoundsException ex) {
                                                System.out.println("There is no third command                                 line argument");
                                }
                }
}
การจัดการกับข้อผิดพลาดหลายๆประเภท
โปรแกรมภาษาจาวาสามารถจะมีชุดคำสั่งของบล็อก catch ได้มากกว่าหนึ่งชุดสำหรับในแต่ละบล็อกคำสั่ง try
ชนิดของออปเจ็คประเภท Exception ที่อยู่ในชุดคำสั่งของบล็อก catch  จะต้องเรียงตามลำดับการสืบทอด
ในกรณีที่มีข้อผิดพลาดเกิดขึ้น ภาษาจาวาจะพิจารณาว่าเป็นข้อผิดพลาดชนิดใด ซึ่งการที่จะจัดการกับออปเจ็คประเภท Exception นั้นจะพิจารณาจากคลาสที่มีการสืบทอดตามลำดับชั้น
ตัวอย่างโปรแกรม
public class ExceptionHandlingDemoV2 {
                public static void main(String args[]) {
                                try {
                                                int i = Integer.parseInt(args[0]);
                                                System.out.println(4 / i);
                                } catch(ArithmeticException ex) {
                                                System.out.println(ex.toString());
                                } catch(NumberFormatException ex) {
                                                System.out.println("Invalid numeric format");
                                }
                }
}
ตัวอย่างโปรแกรมที่ไม่ถูกต้อง
public class ExceptionHandlingDemoV3 {
                public static void main(String args[]) {
                                try {
                                                int i = Integer.parseInt(args[0]);
                                                System.out.println(4 / i);
                                                System.out.println(args[2]);
                                } catch(RuntimeException ex) {
                                                System.out.println(ex.toString());
                                } catch(ArrayIndexOutOfBoundsException ex) {
                                                System.out.println("There is no third command                                 line argument");
                                }
                }
}
บล็อก finally
ภาษาจาวามีคีย์เวิร์ด finally ที่จะมีชุดคำสั่งอยู่ในบล็อกเพื่อระบุให้โปรแกรมทำชุดคำสั่งดังกล่าวหลังจากสิ้นสุดการทำงานของชุดคำสั่งในบล็อก try หรือ catch
ภาษาจาวาจะทำชุดคำสั่งในบล็อก finally เสมอ แม้ว่าจะมีคำสั่ง return ในบล็อก try หรือ catch ก่อนก็ตาม กรณีเดียวที่จะไม่ทำชุดคำสั่งในบล็อก finally คือมีคำสั่ง System.exit();
ตัวอย่างโปรแกรม
public class FinallyDemo {
                public static void main(String args[]) {
                                try {
                                                System.out.println(args[2]);
                                                System.out.println("Hello");
                                } catch(ArrayIndexOutOfBoundsException ex) {
                                                System.out.println("There is no third argument");
                                } finally {
                                                System.out.println("Finish running the program");
                                }
                }
}
-----------------------------------------------------------------------------------------------------------------
public class FinallyDemoV2 {
   public static void main(String args[]) { 
  FinallyDemoV2 obj = new FinallyDemoV2();
  obj.myMethod(args);
   }
   public int myMethod(String args[]) {
  try {
  System.out.println(args[2]);
  return 0; 
  } catch(ArrayIndexOutOfBoundsException ex) {
  System.out.println("There is no third argument");
  } finally {
  System.out.println("Finish running the program");
  return 1;
  }
   }
}
การจัดการกับเมธอดที่ส่งออปเจ็คประเภท Exception
เราสามารถจะจัดการกับออปเจ็คของ Exception โดยใช้คลาสที่เป็น superclass ของ  Exception นั้นได้ อาทิเช่น เราสามารถจัดการกับ FileNotFoundException โดยใช้ IOException หรือ Exception แทนได้
การจัดการกับ Exception มีสองแบบ คือ
      1.ใช้คำสั่ง try/catch
      2.ใช้คำสั่ง throws ในการประกาศเมธอดที่จะมีการเรียกใช้เมธอดใดๆที่อาจส่งออปเจ็คประเภท Exception
คำสั่ง throws 
รูปแบบการใช้คำสั่ง throws มีดังนี้
                                [modifier] return_type methodName([arguments]) throws
                                                                                                ExceptionType[,ExceptionType2] {
                                                ...
                                }
ตัวอย่าง
                                public void openfile(String s) throws                                                                                                                       FileNotFoundException {
                                                ...
                                }
----------------------------------------------------------------------------------------------------------------------------------------
เมธอดใดๆสามารถที่จะจัดการกับ Exception โดยใช้คำสั่ง throws ได้มากกว่าหนึ่งประเภท
ตัวอย่าง
                                public void openFile(String s)throws                                                                       FileNotFoundException,UnknownHostException {
                                                                 ...
      }
กรณีที่มีการใช้คำสั่ง throws ส่งต่อไปเรื่อยๆ แล้วเมธอด main() ซึ่งเรียกใช้เมธอดสุดท้ายที่ใช้คำสั่ง throws ไม่มีการจัดการกับออปเจ็คประเภท Exception ดังกล่าว  โปรแกรมจะเกิดข้อผิดพลาดในขั้นตอนการรันโปรแกรม เมื่อมีข้อผิดพลาดของออปเจ็คประเภท Exception ดังกล่าวเกิดขึ้น
ตัวอย่างโปรแกรมที่ไม่มีการจัดการกับ Exception
public class ExceptionDemo1 {
                public static void main(String args[]) {
                                ExceptionDemo1 ex1 = new ExceptionDemo1();
                                ex1.method1();
                }
                public void method1() throws ArithmeticException {
                                method2();
                }
                public void method2() throws ArithmeticException {
                                System.out.println(2/0);
                }
 }
กฎของการกำหนดเมธอดแบบ overriden
เมธอดแบบ overriden จะไม่อนุญาตให้มีการจัดการออปเจ็คประเภท Exception โดยใช้คำสั่ง throws มากชนิดกว่าที่เมธอดเดิมจัดการอยู่ได้
ตัวอย่างโปรแกรมที่มีเมธอดแบบ overriden ที่ถูกต้อง
import java.io.*;
public class Parent {
                public void myMethods() throws IOException { }
}
public class OverrideException extends Parent{
                public void myMethods() throws IOException {
                                new FileInputStream("temp.txt");
                }
}
ตัวอย่างโปรแกรมที่มีเมธอดแบบ overriden ที่ไม่ถูกต้อง
import java.io.*;
public class Parent {
  public void myMethods() throws FileNotFoundException { }
}
public class OverrideExceptionV2 extends Parent {
                public void myMethods() throws                                                                              FileNotFoundException,IOException {
                                new FileInputStream("temp.txt");
                }
}
การสร้างคลาสประเภท Exception ขึ้นใหม่
การสร้างคลาสประเภท Exception ขึ้นมาใหม่ สามารถทำได้โดยนิยามคลาสใดๆให้สืบทอดมาจากคลาสที่ชื่อ Exception
โดยทั่วไปคลาสที่ชื่อ Exception จะมี constructor สองรูปแบบคือ public Exception()  และ public Exception(String s)
ดังนั้นคลาสที่สืบทอดมาจากคลาสที่ชื่อ Exception ควรจะมี constructor ทั้งสองแบบ โดยรูปแบบหนึ่งจะมี argument ที่มีชนิดข้อมูลเป็น String และมีคำสั่งแรกใน constructor เป็นคำสั่ง super(s);
ตัวอย่างคลาสประเภท Exception ที่กำหนดขึ้นใหม่
public class MyOwnException extends Exception {
                public MyOwnException (String s) {
                                super(s);
                }
}
การเขียนเมธอดเพื่อส่งออปเจ็คประเภท Exception
เมธอดที่ต้องการส่งออปเจ็คประเภท Exception  เมื่อเกิดข้อผิดพลาดขึ้นในคำสั่งใด จะต้องเรียกใช้คำสั่งที่ชื่อ  throw  เพื่อจะสร้างออปเจ็คของคลาสประเภท Exception ขึ้นมา
รูปแบบ                 throw new ExceptionType([arguments])
นอกจากนี้คำสั่งประกาศเมธอดนั้นจะต้องมีคำสั่ง throws เพื่อกำหนดให้คำสั่งในเมธอดอื่นๆที่เรียกใช้เมธอดนี้ต้องเขียนคำสั่งในการจัดการกับข้อผิดพลาดนี้
ตัวอย่างคลาส FileHandler
import java.io.*;
public class FileHandler {
    public static void openFile(String filename) throws                                                                            MyOwnException {
                 File f = new File(filename);
                 if (!f.exists()) {
                                throw new MyOwnException("File Not Found");
                 }
    }
}
ตัวอย่างโปรแกรมที่มีการจัดการกับข้อผิดพลาด
public class FileOpener {
                 public static void main (String args[]) {
                                try {
                                                FileHandler.openFile(args[0]);
                                                System.out.println("Open successful");
                                } catch (MyOwnException ex) {
                                                System.err.println(ex);
                                }
                 }
}