❶ java GUI 設計一個身份證信息的用戶界面。當用戶提交輸入信息後,彈出一個消息框,將輸入的內容顯示在其中
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class test extends JFrame {
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
JLabel l1 = new JLabel("姓名"鏈寬頃);
JLabel l2 = new JLabel("身份號碼");
JTextField f1 = new JTextField();
JTextField f2 = new JTextField();
JButton b1 = new JButton("巧逗提棚陸交");
public test()
{
this.setLayout(new BorderLayout());
p1.setLayout(new GridLayout(2,2));
p1.add(l1);
p1.add(f1);
p1.add(l2);
p1.add(f2);
this.add(p1,BorderLayout.NORTH);
p2.add(b1,BorderLayout.CENTER);
this.add(p2,BorderLayout.CENTER);
b1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
JOptionPane.showMessageDialog(null,"姓名:"+f1.getText()+"\n身份證號碼:"+f2.getText());
}
});
this.setSize(200,120);
this.setVisible(true);
}
public static void main(String[] args) {
test t = new test();
}
}
❷ 請設計一個GUI界面,參考如下界面原型實現。求大神用JAVA
importjava.awt.Color;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.util.Random;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
{
privateJButton[]btns=newJButton[7];
privateRandomrn=newRandom();
privateboolean[]flags=newboolean[33];//用來判別重復
publicMyPanel(){
init();
}
privatevoidinit(){
setTitle("MyPanel....");
setSize(540,250);
setContentPane(createPane());
}
privateJPanelcreatePane(){
JPanelpane=new脊侍JPanel(null);
pane.setBackground(Color.YELLOW);
for(inti=0;i<btns.length;i++){
btns[i]=newJButton("0");
btns[i].setBounds(20+(i*70),30,54,24);
btns[i].setBackground(Color.PINK);
pane.add(btns[i]);
btns[i].addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
while(true){
intn=rn.nextInt(34);
//如果數字被使用,或為3334就重新選數字
if(n==0||n>33||flags[n-1]){
continue;
}
//把使用了的數字設置為true,即已使用
flags[n-1]=true;
//把不用了的數字設置成未使用狀態
if(Integer.parseInt(((JButton)e.getSource())
.getText())!=0){
flags[Integer.parseInt(((JButton)e.getSource())
.getText())-1]=false;
}
((JButton)e.getSource()).setText(String.valueOf(n));
break;
}
}
});
}
JButtoncreNum=螞野虛newJButton("創建數字");
creNum.setBounds(50,150,100,30);
creNum.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
for(inti=0;i<btns.length;i++){
while(true){
intn=rn.nextInt(34);
//如果數字被使用,或為3334就重新選數字
if(n悶燃==0||n>33||flags[n-1]){
continue;
}
//把使用了的數字設置為true,即已使用
flags[n-1]=true;
//把不用了的數字設置成未使用狀態
if(Integer.parseInt(btns[i].getText())!=0){
flags[Integer.parseInt(btns[i].getText())-1]=false;
}
btns[i].setText(String.valueOf(n));
break;
}
}
}
});
pane.add(creNum);
JButtonsort=newJButton("排序");
sort.setBounds(200,150,100,30);
sort.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
//排序
String[]strs=newString[7];
//把按鈕上面的數字拿出來
for(inti=0;i<btns.length;i++){
strs[i]=btns[i].getText();
}
//開始排序
for(inti=strs.length-1;i>0;i--){
for(intj=0;j<i;j++){
if(Integer.parseInt(strs[i])<Integer
.parseInt(strs[j])){
Stringtemp;
temp=strs[i];
strs[i]=strs[j];
strs[j]=temp;
}
}
}
//排好,在顯示到按鈕上
for(intj=0;j<strs.length;j++){
btns[j].setText(strs[j]);
}
}
});
pane.add(sort);
JButtonreset=newJButton("重置");
reset.setBounds(350,150,100,30);
reset.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
flags=newboolean[33];
for(inti=0;i<btns.length;i++){
btns[i].setText("0");
}
}
});
pane.add(reset);
returnpane;
}
publicstaticvoidmain(String[]args){
MyPanelmp=newMyPanel();
mp.setVisible(true);
}
}
根據你的要求,數字不會重復,用的是冒泡排序
希望對你有幫助
如圖:
❸ 用Java設計一個圖形界面(GUI)的計算器應用程序,完成簡單的算術運算
下午發
五分鍾搞定,先給你發個簡單的,照例子自己去做你想要的計液念算器
package aaa;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class YunSuan implements ActionListener,ItemListener
{
public static JFrame jf;
public static Container c;
public static JTextField jtf1,jtf2,jtf3;
public static JButton jb1;
public static Choice c2;
public static String fuhao="";
public YunSuan()
{
jf=new JFrame("加減喚纖乘除運鬧鏈困算");
c=jf.getContentPane();
c.setLayout(new FlowLayout());
jtf1=new JTextField(10);
jtf2=new JTextField(10);
jtf3=new JTextField(10);
c2=new Choice();
jb1=new JButton("=");
}
public void Jiemian()
{
c.add(jtf1);
c2.addItemListener(this);
c2.add("");
c2.add("+");
c2.add("-");
c2.add("*");
c2.add("/");
c.add(c2);
c.add(jtf2);
jb1.addActionListener(this);
c.add(jb1);
c.add(jtf3);
jf.setLocation(200,100);
jf.setVisible(true);
jf.pack();
}
public static void main(String args[])
{
YunSuan ys=new YunSuan();
ys.Jiemian();
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
double s1=Integer.parseInt(jtf1.getText());
double s2=Integer.parseInt(jtf2.getText());
double result=0;
if(fuhao.equals("+"))
{
result=s1+s2;
String result2=String.valueOf(result);
jtf3.setText(result2);
}
if(fuhao.equals("-"))
{
result=s1-s2;
String result2=String.valueOf(result);
jtf3.setText(result2);
}
if(fuhao.equals("*"))
{
result=s1*s2;
String result2=String.valueOf(result);
jtf3.setText(result2);
}
if(fuhao.equals("/"))
{
result=s1/s2;
String result2=String.valueOf(result);
jtf3.setText(result2);
}
}
public void itemStateChanged(ItemEvent ie)
{
if(ie.getSource()==c2)
{
String str1=c2.getSelectedItem();
fanhui(str1);
}
}
public String fanhui(String str2)
{
return fuhao=str2;
}
}
❹ Java實現GUI編程基本方法都有那些
其實無論在什麼平台下,GUI應用程序的基本開發方法都是相似的。一般都包括下面這樣四個步驟:
①創建容器
首先要創建一個GUI應用程序,需要創建一個用於容納所有其它GUI組件元素的載體,Java中稱為容器。典型的包括窗口(Window)、框架(Frame/JFrame)、對話框(Dialog/JDialog)、面板(Panel/JPanel)等。只有先創建了這些容器,其它界面元素如按鈕(Button/JButton)、標簽(Label/JLabel)、文本框(TextField/JTextField)等才有地方放。
②添加組件
為了實現GUI應用程序的功能,為了與用戶交換,需要在容器上添加各種組件/控制項。這需要根據具體的功能要求來決定用什麼組件。例如,如果需要提示信息,可用標簽(Label/JLabel);如果需要輸入少量文本,可用文本框(TextField/JTextField);如果需要輸入較多文本,可用文本區域(TextArea/JTextArea);如果需要輸入密碼,可用密碼域(JPasswordField)等等。
③安排組件
與傳統的Windows環境下的GUI軟體開發工具不同,為了更好地實現跨平台,Java程序中各組件的位置、大小一般不是以絕對量來衡量,而是以相對量來衡量。例如有時候,程序的組件的位置是按"東/East"、"西/West"、"南/South"、"北/North"、"中 /Center"這種方位來標識的。因此,在組織界面時,除了要考慮所需的組件種類外,還需要考慮如何安排這些組件的位置與大小。這一般是通過設置布局管理器(Layout Manager)及其相關屬性來實現的。事實上上述按方位來安排組件就是採用了Java中多種布局管理器里的BorderLayout布局管理器。
④處理事件
為了完成一個GUI應用程序所應具備的功能,除了適當地安排各種組件產生美觀的界面外,還需要處理各種界面元素事件,以便真正實現與用戶的交換,完成程序的功能。在Java程序中這一般是通過實現適當的事件監聽者介面來完成的。比如如果需要響應按鈕事件,就需要實現 ActionListener監聽者介面;如果需要響應窗口事件,就需要實現WindowListener監聽者介面。
❺ 編寫一個Java多線程GUI程序(GUIThread.java),有兩個按鈕,點擊第一個按鈕、啟動一個線程開始計時,並把
你要的是這個吧:啟雀枝
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.text.DateFormat;
import java.util.Date;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class GUIThread extends JFrame implements java.awt.event.ActionListener{
private JButton jb1 = new JButton("計時");
private JButton jb2 = new JButton("當前時間歲兆");
private JLabel jl1 = new JLabel("");
private JLabel jl2 = new JLabel("");
public GUIThread(){
super("GUIThread");
this.setSize(300,200);
this.setLocation(400, 400);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLayout(new GridLayout(2,2));
this.jb1.addActionListener(this);
this.jb2.addActionListener(this);
this.add(jb1);
this.add(jl1);
this.add(jb2);
this.add(jl2);
this.setVisible(true);
}
public static void main(String[] args){
new GUIThread();
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
Object jb = e.getSource();
if(jb == jb1){
new TimingTime(jl1).start();
jb1.setEnabled(false);
}else{
new NowTime(jl2).start();
}
}
}
class NowTime extends Thread{
private JLabel jl;
public NowTime(JLabel jl){
this.jl = jl;
}
@Override
public void run() {
// TODO Auto-generated method stub
while(true){
try {
sleep(1000);
} catch (InterruptedException e) {
//悄敏 TODO Auto-generated catch block
e.printStackTrace();
}
Date d = new Date() ;
this.jl.setText(d.getYear()+"-"+(d.getMonth()+1)+"-"+d.getDate()+" "+d.getHours()+":"+d.getMinutes()+":"+d.getSeconds());
}
}
}
class TimingTime extends Thread{
private JLabel jl;
private long l = new Date().getTime();
public TimingTime(JLabel jl){
this.jl = jl;
}
@Override
public void run() {
// TODO Auto-generated method stub
while(true){
try {
sleep(1000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int emp = 1000;
int i = (int) ((new Date().getTime() - l)/emp);
jl.setText(String.valueOf(i));
}
}
}
❻ JAVA .編寫GUI程序,要求:用戶在密碼框中輸入數據,將輸入的字元顯示在另一個文本框中。
這個和你想要的差不多了
import java.awt.FlowLayout;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class Test extends JFrame implements ActionListener {// 繼承窗體JFrame,聲明借口ActionListener。
/**
*
*/
private static final long serialVersionUID = 1L;
JLabel input = new JLabel(" 請輸入密碼:");// 實例化一個標簽對象。
TextField password = new TextField(13);// 實例化一個文本框對象。
JButton submit = new JButton("提交");// 實例化一個按鈕對象。
JButton reset = new JButton("重置殲升");
JLabel output = new JLabel("你輸入的密碼是:");
JTextField show = new JTextField(10);
Test() {// 構造函數
super("0.0");// 窗體名字。
this.setLayout(new FlowLayout());// 窗體布局。(流式布局)
submit.addActionListener(this);// 給按鈕添加事件監聽。(給按鈕注冊監聽器)
reset.addActionListener(this);
this.add(input);// 將各組件添加在窗體上。
password.setEchoChar('*');// 設置掩碼。
this.add(password);
this.add(output);
this.add(show);
this.add(submit);
this.add(reset);
this.setSize(245, 200);// 設置窗體大小。
this.setVisible(true);// 設哪虛置窗體可見。
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 設置窗體可關閉,程序可正常退出。
}
public static void main(String[] args) {
new Test();// 實例化類
}
public void actionPerformed(ActionEvent e) {
String str = password.getText();// 將氏緩老password文本框中的字元取出存在str中。
JButton jb = (JButton) e.getSource();// 獲得按鈕事件的事件源
if (jb == submit) {// 點擊了submit按鈕
show.setText(str);// 設置show文本框中的內容為str中的內容
}
if (jb == reset) {// 點擊了reset按鈕
password.setText(null);// 文本框清空
show.setText(null);
}
}
}
❼ java編程中,GUI界面的一般框架有什麼希望大神給寫個程序實例,程序內容包括布局的應用,多個
java GUI一般,通過AWT,SWING 實現
其餘比較流行的是SWT,但是它不是官方庫, 並且旦核不能跨平台
//注意:
Swing, 所以很多不涉及界面組件的一些類比如布局 等Swing也可以使用
但是組件,最好不要混用, 容易出現一些組件疊加,等顯示錯誤 比如JButton TextField等混用
//參考代碼
下面使用Swing組件來實嘩告現
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
//本類實現了ActionListener介面.一個ActionListener可以響應JMenuItem和JButton的動作
//本類實現FocusListener介面,一個FocusListener可以響應JTextField,JButton等
//JButton響應多個事件介面
,FocusListener{
privateJTextFieldjtf1;
privateJTextFieldjtf2;
privateJTextFieldjtf3;
privateJButtonjb1;
publicMyGuiFrame(){
//----------窗口屬性亂遲明的設置----------
setTitle("窗口應用程序");//窗口標題
setSize(380,120);//窗口大小
setLocationRelativeTo(null);//窗口居於屏幕中央
setDefaultCloseOperation(EXIT_ON_CLOSE);//點擊關閉窗口後退出jvm虛擬機
getContentPane().setLayout(newBorderLayout(5,3));//邊界布局,水平間距5,垂直間距3
//菜單欄組件初始化
initMenu();
//主要面板的初始化
initPanel();
}
privatevoidinitPanel(){
JPaneljp=newJPanel(newFlowLayout(FlowLayout.CENTER));//流式布局
jtf1=newJTextField(8);
jtf1.addFocusListener(this);//添加焦點響應
JLabeljl=newJLabel("+");
jtf2=newJTextField(8);
jtf2.addFocusListener(this);
jb1=newJButton("=");
jb1.addActionListener(this);//添加動作響應
jb1.addFocusListener(this);//添加焦點響應
jtf3=newJTextField(8);
jtf3.setEditable(false);
jp.add(jtf1);
jp.add(jl);
jp.add(jtf2);
jp.add(jb1);
jp.add(jtf3);
getContentPane().add(jp,BorderLayout.CENTER);
}
privatevoidinitMenu(){//菜單欄的初始化和設置
JMenuBarjmb=newJMenuBar();
JMenujm1=newJMenu("系統");
JMenuItemjmi101=newJMenuItem("退出");
jmi101.addActionListener(this);//添加動作響應
JMenujm2=newJMenu("幫助");
JMenuItemjmi201=newJMenuItem("功能說明");
jmi201.addActionListener(this);
jm1.add(jmi101);
jm2.add(jmi201);
jmb.add(jm1);
jmb.add(jm2);
setJMenuBar(jmb);//設置菜單欄
}
//main方法,創建對象窗口,並且設置可見
publicstaticvoidmain(String[]args){
newMyGuiFrame().setVisible(true);
}
//動作響應處理
publicvoidactionPerformed(ActionEvente){
Stringcmd=e.getActionCommand();//根據命令來區分不同的操作
if(cmd.equals("退出")){
System.exit(0);
}
if(cmd.equals("功能說明")){
JOptionPane.showMessageDialog(this,"加法");
}
if(cmd.equals("=")){
Strings1=jtf1.getText().trim();
Strings2=jtf2.getText().trim();
if(s1.equals("")){
s1="0";
}
if(s2.equals("")){
s2="0";
}
doublenum1=Double.parseDouble(s1);//從字元串轉小數
doublenum2=Double.parseDouble(s2);
jtf3.setText((num1+num2)+"");//數字類型轉字元串類型
}
}
//焦點響應處理
publicvoidfocusGained(FocusEvente){//獲得焦點
JComponentcmp=(JComponent)e.getComponent();//根據事件來源組件來區分不同的操作
if(cmp==jtf1||cmp==jtf2){
cmp.setBorder(BorderFactory.createLineBorder(Color.BLUE));//設置邊框
}
if(cmp==jb1){
jb1.setForeground(Color.RED);//設置文字顏色
}
}
publicvoidfocusLost(FocusEvente){//失去焦點
JComponentcmp=(JComponent)e.getComponent();
if(cmp==jtf1||cmp==jtf2){
cmp.setBorder(BorderFactory.createLineBorder(Color.GRAY));
}
if(cmp==jb1){
jb1.setForeground(Color.BLACK);
}
}
}
運行效果如圖
❽ 使用Java的GUI圖形用戶界面編程設計並編寫一個計算器程序
進口的java.awt.BorderLayout;
進口java.awt.GridLayout中;
進口java.awt.event.ActionEvent;
進口java.awt.event.ActionListener;
進口的javax。 swing.JButton;
進口javax.swing.JFrame中;
進口javax.swing.JPanel;
進口javax.swing.JTextField中;
/ /暫時不考慮這個問題甚至添加
/ /點的第二個操作點的操作員點運算符點=結果
公共類計算器實現的ActionListener {
> JTextField的JTF =新的JTextField(10);
私人布爾追加= FALSE;
私人字元串OP1 =「0」;
私人字元串運算符=「+」;
@覆蓋
公共無效的actionPerformed(ActionEvent的E){
字元串COMN = e.getActionCommand();。!
/ /處理數字
如果(「0123456789」的indexOf(COMN)= -1){
如果(追加){/ /追加
字元串溫度= jtf.getText() ;
jtf.setText(溫度+ COMN);
}其他{/ /替換
jtf.setText(COMN);
追加= TRUE;
/ /處理運營商
否則,如果(「+ - * /」的indexOf(COMN)= -1){
OP1 = JTF。的getText();
運算符= COMN;
追加= FALSE;
的} else if(「=」的indexOf(COMN)= -1。){
字元串OP2 = jtf.getText();
雙D1 = Double.parseDouble(OP1);
雙D2 = Double.parseDouble(OP2);
如果(「+」等於(操作者)。){
D1 = D1 + D2;
}否則,如果(「 - 」等於(操作員)。){
D1 = D1 - D2;
}否則,如果(「*」的equals(操作員)。){
D1 = D1 * D2;
的} else if(「/」等於(操作者)。){
D1 = D1 / D2;
jtf.setText(D1 +「」);
追加= FALSE;
}否則,如果(等於(COMN)「。」){
字元串溫度= jtf.getText();
如果(temp.indexOf(「;」)== -1){
jtf.setText(溫度+「。」);
追加= TRUE;
否則,如果(「+ / - 」的equals(COMN)){
字元串溫度= jtf.getText();
如果(temp.startsWith(「-1」)){
JTF。的setText(temp.substring(1));
}其他{
jtf.setText(「 - 」+溫度);
否則,如果(「退格」。等於(COMN)){
字元串溫度= jtf.getText();
如果(temp.length()> 0){
jtf.setText(temp.substring(0,temp.length() - 1)); ..
}
的} else if(「CE」等於(COMN)| |「C」等於(COMN)){
jtf.setText(「0」);
追加= FALSE;
公眾計算器(){
JFrame的JF =新的JFrame(「計算器」);
jf.add(JTF,BorderLayout.NORTH);
字串[] S1 = {「退格」,「CE」,「C」,「+」,「7」,「8」,「9」,「/」,「4」,
「5」,「6」,「*」,「1」,「2」,「3」,「 - 」,「0」,「+ / - 」,「」,。 「=」};
的JPanel JP =新的JPanel();
jf.add(JP,使用BorderLayout.CENTER);
網格布局GL =新的網格布局(5,4); jp.setLayout(GL);
JButton的[] JB =新的JButton [s1.length];
為(int i = 0;我<s1.length,我+ +){
JB [我] =新的JButton(S1由[i]);
jp.add(JB由[i]);。
JB [I] addActionListener方法,(這);
} jf.add(JP);
jtf.setEditable(假);
jf.setLocation(400,300);
jf.pack();
jf.setResizable(假);/ /設置窗口不可改變
jf.setDefaultCloseOperation(jf.EXIT_ON_CLOSE);
jf.setVisible(真);
公共靜態無效的主要(字串[] args){
新的計算器();
這個函數比較簡單,不知道能不能滿足要求
❾ 請舉例說明Java GUI程序設計中事件的處理過程。
import java.sql.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;class StudentApplication implements ActionListener
{
JFrame fMain;
JPanel pan;
JLabel labId,labName,labSex,labAge;
JTextField texId,texName,texSex,texAge;
JButton butQuery,butAdd,butUpdate,butDelete;
Connection con;
PreparedStatement ps;
ResultSet rs;
public StudentApplication()
{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
con=DriverManager.getConnection("jdbc:odbc:Hospital","sa","123456");
//Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
// Connection con=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;databaseName=Hospital_Table;user=sa;password=123456");
}catch(Exception er)
{
JOptionPane.showMessageDialog(fMain,er.getMessage());
}
formStudent();
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==butQuery)
{
try{
ps=con.prepareStatement("select * from Hospital_Employee where Employee_ID=?");
ps.setString(1,texId.getText());
ResultSet rs= ps.executeQuery();
if(rs.next())
{
texName.setText(rs.getString(2));
texSex.setText(rs.getString(3));
texAge.setText(Integer.toString(rs.getInt(4)));
}
else
{
JOptionPane.showMessageDialog(fMain,"查詢失敗!");
}
}catch(Exception e1)
{
JOptionPane.showMessageDialog(fMain,e1.getMessage());
}
}
if(e.getSource()==butAdd)
{
try{
ps=con.prepareStatement("insert students values(?,?,?,?)");
ps.setString(1,texId.getText());
ps.setString(2,texName.getText());
ps.setString(3,texSex.getText());
ps.setInt(4,Integer.parseInt(texAge.getText()));
int Ruselt=ps.executeUpdate();
if(Ruselt>0)
{
JOptionPane.showMessageDialog(fMain,"增加成功");
}
else
{
JOptionPane.showMessageDialog(fMain,"增加失敗!");
}
}catch(Exception e2)
{
JOptionPane.showMessageDialog(fMain,e2.getMessage());
}
}
if(e.getSource()==butUpdate)
{
try{
ps=con.prepareStatement("update students set stu_name=?,sex=?,age=? where stu_id=?");
ps.setString(1,texName.getText());
ps.setString(2,texSex.getText());
ps.setInt(3,Integer.parseInt(texAge.getText()));
ps.setString(4,texId.getText());
int Ruselt=ps.executeUpdate();
if(Ruselt>0)
{
JOptionPane.showMessageDialog(fMain,"修改成功");
}
else
{
JOptionPane.showMessageDialog(fMain,"修改失敗");
}
}catch(Exception e2)
{
JOptionPane.showMessageDialog(fMain,e2.getMessage());
}
}
if(e.getSource()==butDelete)
{
try{
ps=con.prepareStatement("delete students where stu_id=?");
ps.setString(1,texId.getText());
int Ruselt=ps.executeUpdate();
if(Ruselt>0)
{
JOptionPane.showMessageDialog(fMain,"刪除成功");
}
else
{
JOptionPane.showMessageDialog(fMain,"刪除失敗");
}
}catch(Exception e2)
{
JOptionPane.showMessageDialog(fMain,e2.getMessage());
}
}
}
private void formStudent()
{
fMain=new JFrame("學生信息");
pan=new JPanel();
labId=new JLabel("學號");
labName=new JLabel("名字");
labSex=new JLabel("性別");
labAge=new JLabel("年齡");
texId=new JTextField(15);
texName=new JTextField(15);
texSex=new JTextField(6);
texAge=new JTextField(6);
butQuery=new JButton("查詢");
butAdd=new JButton("增加");
butUpdate=new JButton("修改");
butDelete=new JButton("刪除");
fMain.add(pan);
pan.setLayout(null);
labId.setBounds(10,10,60,25);
labName.setBounds(10,55,60,25);
labSex.setBounds(10,100,60,25);
labAge.setBounds(10,145,60,25);
texId.setBounds(80,10,100,25);
texName.setBounds(80,55,100,25);
texSex.setBounds(80,100,100,25);
texAge.setBounds(80,145,100,25);
butQuery.setBounds(200,10,80,25);
butAdd.setBounds(200,50,80,25);
butUpdate.setBounds(200,100,80,25);
butDelete.setBounds(200,145,80,25);
pan.add(labId);
pan.add(labName);
pan.add(labSex);
pan.add(labAge);
pan.add(texId);
pan.add(texName);
pan.add(texSex);
pan.add(texAge);
pan.add(butQuery);
pan.add(butAdd);
pan.add(butUpdate);
pan.add(butDelete);
fMain.setSize(320,222);
fMain.setVisible(true);
butQuery.addActionListener(this);
butAdd.addActionListener(this);
butUpdate.addActionListener(this);
butDelete.addActionListener(this);
}
public static void main(String[] args)
{
StudentApplication sa=new StudentApplication();
}
}
❿ java gui怎樣在特定窗口中插入圖片
1.首先一個小錯誤,這些代碼(包括你建立第一個JFrame的代碼)最好都放到Swing的線程去,山模不然可能會偶爾發生意外錯誤。就是這樣:SwingUtilities.invokeLater(new Runnable() {@Override public void run() {...在這里寫的代碼會在Swing線程又叫做EDT里執行...} });
2.Swing里可以用LayoutManager,個人感覺比你一個一個手動設置Bound方便和靈活。
3.然後,一般改成:fr.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE)而不是exit,exit比較粗魯會終止整個程序,dispose只是終止窗口並在所有窗口都態唯信結束而且主線程也結束才終止程序。
4.getClass().getResource一般用在做成JAR之後,從同一個JAR里取數據,可以用比較簡單的Toolkit.getDefaultToolkit().getImage()
5.你已經知道JLabel可以附帶圖片了。如果你要的效果是圖片之上顯示東西,這里你心裡有了「層」的概念,而帆輪這個概念在Swing里的一個實現是JLayeredPane,去學習這個容器吧。給你個大概的例子:
JLayeredPane layers = new JLayeredPane();//創建
JPanel paneBackground = new JPanel(new BorderLayout());//背景層
paneBackground.add(new JLabel(Toolkit.getDefaultToolkit().getImage("C:/1.jpg")), BorderLayout.CENTER);//加入背景圖片,BorderLayout.CENTER單獨使用表示填滿。
JPanel paneDetails = new JPanel(new FlowLayout());//這層你往裡面加東西,就在背景上面了。
paneDetails.add(new JButton("ABC"));//加個按鈕試試。
layers.add(paneBackground);layers.add(paneDetails);//把層按照從背後向前的順序加進去。
fr.add(layers, BorderLayout.CENTER);//把layers加進frame裡面去,填滿。
純手寫代碼筆誤難免哦~