A. java swing Jpanel 怎麼添加一個Jdialog彈出框
通過: 彈出框, 顧名思義就是剛開始看不見, 觸發某個事件後彈出的一個框
所以 我們要讓JPanel響應指定的事件然後彈出 . 比如常見的事件, 滑鼠點擊JPanel後彈出
彈出框. 一般有兩種方法實現
方法一:JOptionPane 創建1個簡單的彈出框.(代碼量少, 效果簡單)
方法二Dialog/JDialog 創建1個彈出框.(代碼量長,可以實現復雜的效果)
效果圖
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassDemoextendsJFrame{
JPaneljp;
staticfinalStringtitle="Message";
staticfinalStringcontent="Eggsaren'tsupposedtobegreen.";
publicDemo(){
jp=newJPanel();
jp.setBackground(Color.PINK);
jp.addMouseListener(newMouseAdapter(){
@Override
publicvoidmouseClicked(MouseEvente){
//方法1
JOptionPane.showMessageDialog(null,content,title,JOptionPane.INFORMATION_MESSAGE);
//方法2
newMyDailog(title,content).setVisible(true);//創建1個對話框,並且設置為可見
}
});
add(jp);
setTitle("測試Demo");//標題
setSize(280,280);//窗口大小
setLocationRelativeTo(null);//窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE);//窗口點擊關閉時,退出程序
setVisible(true);//窗口可見
}
publicstaticvoidmain(String[]args){
newDemo();
}
}
//對話框類
{
Stringtitle;
Stringcontent;
publicMyDailog(Stringtitle,Stringcontent){
this.title=title;
this.content=content;
ImageIconicon=newImageIcon("tp.png");//創建1個圖標實例
JLabeljlImg=newJLabel(icon);//1個圖片標簽,顯示圖片
JLabeljl=newJLabel(content);//1個文字標簽,顯示文本
jl.setForeground(Color.BLUE);//設置文字的顏色為藍色
JButtonjb=newJButton("確定");//創建1個按鈕
jb.addActionListener(this);//給按鈕添加響應事件
add(jlImg);//向對話框加入圖片標簽
add(jl);//向對話框加入文字標簽
add(jb);//向對話框添加按鈕
setLayout(newFlowLayout());//對話框流式布局
setIconImage(icon.getImage());//窗口左上角的小圖標
setTitle(title);//設置標題
setModal(true);//設置為模態窗口
setSize(275,135);//設置對話框大小
setLocationRelativeTo(null);//對話框局域屏幕中央
setResizable(false);//對話框不可縮放
setDefaultCloseOperation(DISPOSE_ON_CLOSE);//當對話框窗口的關閉按鈕[X]被點擊時,銷毀對話框
}
//當確定按鈕被點擊時會執行下面的方法
@Override
publicvoidactionPerformed(ActionEvente){
if(e.getActionCommand().equals("確定")){//判斷是不是確定按鈕被點擊
this.setVisible(false);//對話框不可見
this.dispose();//對話框銷毀
}
}
}
B. 怎麼利用java web編寫一個輸入框和一個按鈕,點擊按鈕彈出一個對話框,顯示你剛才在輸入框輸入的內容
<scripttype="text/javascript">
functionsend(){
vartxt=document.getElementById("input");
alert(txt.value);
}
</script>
<body>
<inputtype="text"id="input"></input>
<buttonid="send"onclick="send();">提交</button>
</body>
C. java對話框實現多個輸入項
效果圖
importjava.awt.BorderLayout;
importjava.awt.GridLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjavax.swing.JButton;
importjavax.swing.JDialog;
importjavax.swing.JLabel;
importjavax.swing.JPanel;
importjavax.swing.JTextField;
{
finalJTextFieldjtf1,jtf2,jtf3;//定義三個輸入框
finalJLabeljlinfo;
publicDHKDemo(){
setTitle("多項輸入對話框");
setModal(true);
setSize(300,200);//對話框的大小
setDefaultCloseOperation(DISPOSE_ON_CLOSE);//關閉後銷毀對話框
setLocationRelativeTo(null);
JLabeljl1=newJLabel("姓名:");
jtf1=newJTextField(8);
JLabeljl2=newJLabel("學號:");
jtf2=newJTextField(8);
JLabeljl3=newJLabel("年齡:");
jtf3=newJTextField(8);
JPaneljp=newJPanel(newGridLayout(3,2));
jp.add(jl1);
jp.add(jtf1);
jp.add(jl2);
jp.add(jtf2);
jp.add(jl3);
jp.add(jtf3);
JButtonjb=newJButton("確認輸入");
jlinfo=newJLabel("信息:",JLabel.CENTER);
jb.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringinfo="姓名:"+jtf1.getText()+"學號:"+jtf2.getText()+"年齡:"+jtf3.getText();
jlinfo.setText(info);
}
});
add(jp);
add(jlinfo,BorderLayout.NORTH);
add(jb,BorderLayout.SOUTH);
}
publicstaticvoidmain(String[]args){
newDHKDemo().setVisible(true);
}
}
D. 用java編寫一個程序,程序運行時彈出一個輸入對話框,用戶使用該對話
packagecn.fu;
importjava.awt.BorderLayout;
importjava.awt.EventQueue;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
importjavax.swing.border.EmptyBorder;
importjavax.swing.JOptionPane;
importjavax.swing.JTextField;
importjavax.swing.JLabel;
importjavax.swing.JButton;
importjava.awt.event.ActionListener;
importjava.awt.event.ActionEvent;
importjava.awt.Window.Type;
publicclassLoginextendsJFrame{
privateJPanelcontentPane;
privateJTextFieldtextField;
/**
*Launchtheapplication.
*/
publicstaticvoidmain(String[]args){
EventQueue.invokeLater(newRunnable(){
publicvoidrun(){
try{
Loginframe=newLogin();
frame.setVisible(true);
}catch(Exceptione){
e.printStackTrace();
}
}
});
}
/**
*Createtheframe.
*/
publicLogin(){
setTitle("工具");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100,100,450,300);
contentPane=newJPanel();
contentPane.setToolTipText("");
contentPane.setBorder(newEmptyBorder(5,5,5,5));
setContentPane(contentPane);
contentPane.setLayout(null);
textField=newJTextField();
textField.setBounds(121,86,194,21);
contentPane.add(textField);
textField.setColumns(10);
JLabellblNewLabel=newJLabel("請輸入10位數以內的字元串");
lblNewLabel.setBounds(145,59,194,15);
contentPane.add(lblNewLabel);
JButtonbtnNewButton=newJButton("確定");
btnNewButton.addActionListener(newActionListener(){
publicvoidactionPerformed(ActionEvente){
Stringca=textField.getText();
intn=ca.length();
if(n>10){
JOptionPane.showMessageDialog(null,"對不起,您輸入的字元串長度超過10",
"錯誤提示",JOptionPane.ERROR_MESSAGE);
}elseif(n>=0||n<=10){
JOptionPane.showMessageDialog(null,"字元串長度為"+n,"提示",
JOptionPane.PLAIN_MESSAGE);
}
}
});
btnNewButton.setBounds(172,130,93,23);
contentPane.add(btnNewButton);
}
}