按照你的要求編寫的Java的帶取消的警告信息框的完整程序如下
創(chuàng)新互聯(lián)為您提適合企業(yè)的網(wǎng)站設(shè)計?讓您的網(wǎng)站在搜索引擎具有高度排名,讓您的網(wǎng)站具備超強的網(wǎng)絡(luò)競爭力!結(jié)合企業(yè)自身,進行網(wǎng)站設(shè)計及把握,最后結(jié)合企業(yè)文化和具體宗旨等,才能創(chuàng)作出一份性化解決方案。從網(wǎng)站策劃到成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè), 我們的網(wǎng)頁設(shè)計師為您提供的解決方案。
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.JOptionPane;
import?javax.swing.JPanel;
public?class?F?extends?JFrame?implements?ActionListener{
JButton?jb=new?JButton("確定");
JPanel?jp=new?JPanel();
F(){
jb.addActionListener(this);
jp.add(jb);
add(jp);
setSize(200,?200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public?static?void?main(String[]?args)?{
new?F();
}
@Override
public?void?actionPerformed(ActionEvent?ae)?{
if(ae.getSource()==jb){
int?n=JOptionPane.showConfirmDialog(this,?"跳往另一頁面?",?"跳轉(zhuǎn)警告",JOptionPane.WARNING_MESSAGE,?JOptionPane.OK_CANCEL_OPTION);
if(n==0){
FL?fl=new?FL();//創(chuàng)建新頁面
this.dispose();//銷毀舊頁面
}
}
}
}
class?FL?extends?JFrame{
JLabel?jl=new?JLabel("另一頁面");
JPanel?jp=new?JPanel();
FL(){
jp.add(jl);
add(jp);
setSize(200,?100);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
}
運行結(jié)果
首先你還是弄一個新的panel 來將“確定”“取消”兩個按鈕重新排布好吧,由于只有兩個按鈕這么簡單我下面的程序用GirdLayout了,
例如:JPanel panel = new JPanel();
panel.setLayout(new GridLayout(1,2));
panel.add(bw);
panel.add(bc);
然后再在你的Frame jp 里面加入這個panel,就可以了。按照你的設(shè)定就是用BorderLayout把它加到中間去吧? 北面的就是你原來做好的那些部分..(雖然不是很優(yōu)化,不過先不管了...)
例如:fr.getContentPane().add("North",jp);
fr.getContentPane().add("Center",panel);
整條程序就是:(注意我改了包的名字和類的名字,你要改回來, 這里的參數(shù)也改了一下,符合我自己的審美觀 : fr.setSize(450, 200); )
package src;
/**
* @author Raven Denesis
* @version 1.0
*/
import java.awt.*;
import java.awt.event.*;
import java.util.Map;
import javax.swing.*;
public class Jpassword {
private JFrame fr = new JFrame("登陸界面");
private JTextField user = new JTextField(20);
private JPasswordField pwd = new JPasswordField(10);
private JTextArea ta = new JTextArea(5,10);
private JButton bw = new JButton("確定");
private JButton bc = new JButton("取消");
Font ft = new Font ("serf",Font.BOLD,28);
JPanel jp = new JPanel (new GridLayout(2,3,10,10));
public static void main(String[] args){
Jpassword than = new Jpassword();
than.go();
}
void go(){
fr.getContentPane().setLayout(new BorderLayout(0,10));
JLabel u1 =new JLabel("用戶名: ",JLabel.LEFT);
jp.add(u1);
jp.add(user);
JLabel pl = new JLabel("用戶密碼: ",JLabel.LEFT);
jp.add(pl);
jp.add(pwd);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(1,2));
panel.add(bw);
panel.add(bc);
fr.getContentPane().add("North",jp);
fr.getContentPane().add("Center",panel);
u1.setFont(ft);
pl.setFont(ft);
user.setFont(ft);
pwd.setFont(ft);
//user.addActionListener(new ActionListener());
//pwd.addActionListener(new TextHandler());
fr.setSize(450, 250);
fr.setVisible(true);
fr.setLocation(200, 200);
fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
abstract class TextHandler implements ActionListener
{
int sel;
TextHandler(int sel)
{
this.sel = sel;
}
}
public void actionPerformed(ActionEvent e)
{
String uname,upass;
uname = user.getText();
upass = new String(pwd.getPassword());
ta.setText("用戶名: "+"\n"+"密碼: "+upass);
}
}
運行結(jié)果:
這樣的排版你覺得還可以吧?
還有你的按鈕bw和bc還沒有加到.addActionListener(new ActionListener()); 里,這樣的話按鈕就算按下去都沒反應(yīng)...不過你稍后應(yīng)該會加的了吧,我想就不用另行說了....
lz ?你好
這個就是一個比較簡單的算法題 , 你可以自己寫
但是用Java語言就不需要了 , Java自帶泛型相關(guān)的類 , 很有用
其中TreeSet集合能自動識別添加的是否重復(fù) , 重復(fù)的將不會添加 , 很方便
以下是實現(xiàn)代碼:
import?java.util.List;
import?java.util.Scanner;
public?class?DeleteRepeated?{
private?String?str;
private?TreeSetString?noReapted;//帶有String類型的TreeSet泛型
public?DeleteRepeated()?{
Scanner?in?=?new?Scanner(System.in);
System.out.println?("輸入一個字符串:");
str?=?in.nextLine();
noReapted?=?new?TreeSet();
}
//清楚重復(fù)的數(shù)據(jù)
public?void?removeRepeated(){
for?(int?i?=?0;?i??str.length();?i++){
noReapted.add(""+str.charAt(i));
//str.charAt(i)返回的是char型??所以先加一個""空格?,?轉(zhuǎn)換成String型
//TreeSet泛型能保證重復(fù)的不加入?,?而且有序
}
str?=?"";
for(String?index:noReapted){
str?+=?index;
}
//輸出
System.out.println?(str);
}
public?static?void?main(String[]?args)?{
DeleteRepeated?dr?=?new?DeleteRepeated();
dr.removeRepeated();
}
}
運行截圖:
希望能幫助你哈
如果這個窗體是JFrame或JDialog,那就在構(gòu)造方法里寫
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
如果是Frame或Dialog,那就在WindowListener的windowClosing(WindowEvent)方法里寫
this.dispose();
兩句話的意思是窗體關(guān)閉時釋放自身,,,而不是退出,不要設(shè)成EXIT_ON_CLOSE或System.exit(0);,那樣的話窗體關(guān)閉會導(dǎo)致整個程序退出。
簡單的可以把java代碼寫在jsp文件中, 不過這個后期修改起來麻煩
也可以用serlvet的方式完成的,還是非常簡單的。
import java.io.File;
/**
* 刪除文件和目錄
*
*/
public class DeleteFileUtil {
/**
* 刪除文件,可以是文件或文件夾
*
* @param fileName
* 要刪除的文件名
* @return 刪除成功返回true,否則返回false
*/
public static boolean delete(String fileName) {
File file = new File(fileName);
if (!file.exists()) {
System.out.println("刪除文件失敗:" + fileName + "不存在!");
return false;
} else {
if (file.isFile())
return deleteFile(fileName);
else
return deleteDirectory(fileName);
}
}
/**
* 刪除單個文件
*
* @param fileName
* 要刪除的文件的文件名
* @return 單個文件刪除成功返回true,否則返回false
*/
public static boolean deleteFile(String fileName) {
File file = new File(fileName);
// 如果文件路徑所對應(yīng)的文件存在,并且是一個文件,則直接刪除
if (file.exists() file.isFile()) {
if (file.delete()) {
System.out.println("刪除單個文件" + fileName + "成功!");
return true;
} else {
System.out.println("刪除單個文件" + fileName + "失??!");
return false;
}
} else {
System.out.println("刪除單個文件失敗:" + fileName + "不存在!");
return false;
}
}
/**
* 刪除目錄及目錄下的文件
*
* @param dir
* 要刪除的目錄的文件路徑
* @return 目錄刪除成功返回true,否則返回false
*/
public static boolean deleteDirectory(String dir) {
// 如果dir不以文件分隔符結(jié)尾,自動添加文件分隔符
if (!dir.endsWith(File.separator))
dir = dir + File.separator;
File dirFile = new File(dir);
// 如果dir對應(yīng)的文件不存在,或者不是一個目錄,則退出
if ((!dirFile.exists()) || (!dirFile.isDirectory())) {
System.out.println("刪除目錄失?。? + dir + "不存在!");
return false;
}
boolean flag = true;
// 刪除文件夾中的所有文件包括子目錄
File[] files = dirFile.listFiles();
for (int i = 0; i files.length; i++) {
// 刪除子文件
if (files[i].isFile()) {
flag = DeleteFileUtil.deleteFile(files[i].getAbsolutePath());
if (!flag)
break;
}
// 刪除子目錄
else if (files[i].isDirectory()) {
flag = DeleteFileUtil.deleteDirectory(files[i]
.getAbsolutePath());
if (!flag)
break;
}
}
if (!flag) {
System.out.println("刪除目錄失??!");
return false;
}
// 刪除當(dāng)前目錄
if (dirFile.delete()) {
System.out.println("刪除目錄" + dir + "成功!");
return true;
} else {
return false;
}
}
public static void main(String[] args) {
// // 刪除單個文件
// String file = "c:/test/test.txt";
// DeleteFileUtil.deleteFile(file);
// System.out.println();
// 刪除一個目錄
String dir = "D:/home/web/upload/upload/files";
DeleteFileUtil.deleteDirectory(dir);
// System.out.println();
// // 刪除文件
// dir = "c:/test/test0";
// DeleteFileUtil.delete(dir);
}
}