㈠ GUI程序設計(java)
=====================第一個類=============================
/**
*
* 實現了系統計算器連續按"="和按"+","-","*","/"進行累記運算的模式
*
* */
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class CalculatorFrame extends JFrame {
private JTextField txtDis = new JTextField("0", 16); //顯示文本框
private JButton[] btnGrp = new JButton[17]; //17個按鈕
private JPanel jpnMain = new JPanel(); //主面板
private JPanel jpnNorth = new JPanel(); //上面板
private JPanel jpnSouth = new JPanel(); //下面板
private double numSaved; //保存的前一個數
private String operator = ""; //保存的運拿汪叢算符號
private String lastPress = ""; //上一次按的陵基按鈕("數字","運算符" 或 "等號")
/*構造函數*/
public CalculatorFrame() {
//窗口設置
setTitle("計算器");
setSize(210, 250);
buttonInit(); //按鈕初始化
//主面板設置
add(jpnMain);
jpnMain.setLayout(null);
jpnMain.add(jpnNorth);
jpnMain.add(jpnSouth);
jpnMain.add(btnGrp[15]);
btnGrp[15].setBounds(8, 180, 188, 30); //添加「=」按鈕
//上面板設置
jpnNorth.setBounds(8, 10, 190, 30);
jpnNorth.add(txtDis);
txtDis.setHorizontalAlignment(JTextField.RIGHT); //設置文本右對齊
txtDis.setEditable(false);
//下面板設置
jpnSouth.setBounds(8, 60, 190, 120);
jpnSouth.setLayout(new GridLayout(4, 4));
addSouthJpn(); //添加17個按鈕
//添加監聽器
addListener();
}
/*17個按鈕顯示消櫻值初始化*/
public void buttonInit() {
for (int i = 0; i < 10; i++) {
btnGrp[i] = new JButton("" + i);
}
btnGrp[10] = new JButton(".");
btnGrp[11] = new JButton("+");
btnGrp[12] = new JButton("-");
btnGrp[13] = new JButton("*");
btnGrp[14] = new JButton("/");
btnGrp[15] = new JButton("=");
btnGrp[16] = new JButton("C");
for (int i = 0; i < 17; i++) {
btnGrp[i].setFont(new Font("Dialog", Font.PLAIN, 18));
}
}
/*按網格順序添加除「=」外16個按鈕*/
public void addSouthJpn() {
int[] index={7,8,9,14,4,5,6,13,1,2,3,12,0,16,10,11};
for(int i=0;i<index.length;i++){
jpnSouth.add(btnGrp[index[i]]);
}
}
/*給按鈕添加監聽器*/
public void addListener() {
//給數字按鈕添加監聽器,btnGrp[10]是"."號
for (int i = 0; i <= 10; i++) {
btnGrp[i].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String button = ( (JButton) e.getSource()).getText();
//如果有運算操作符或文本框數字為0並且按鈕不為「。」
if (lastPress == "運算符" || lastPress == "等號"
|| txtDis.getText().equals("0") && button != ".") {
txtDis.setText(""); //清空文本框
}
if (lastPress == "等號") {
operator = ""; //上次按的是=號,這次按數字,清空運算符
}
if (button == "." && txtDis.getText().indexOf(".") != -1) {
} //這次按的是.文本框內已經包含.這種情況什麼都不做,防止.重復
else {
txtDis.setText(txtDis.getText() + button); //文本框添加內容
}
lastPress = "數字";
}
});
}
//給運算操作符按鈕添加監聽器
for (int i = 11; i <= 14; i++) {
btnGrp[i].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (operator != "" && lastPress == "數字") { //運算符不為空並且之前按的是數字
(btnGrp[15].getActionListeners())[0].actionPerformed(e); //手動調用=號的監聽響應實現=號功能
}
numSaved = Double.parseDouble(txtDis.getText()); //保存當前文本框的數字
operator = ( (JButton) e.getSource()).getText(); //保存運算操作符
lastPress = "運算符"; //添加運算符標記,下次文本框清空
}
});
}
//給等號按鈕添加監聽器
btnGrp[15].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
double numNow = Double.parseDouble(txtDis.getText()); //當前文本框的數字
//運算符匹配操作
if (operator.equals("+")) {
txtDis.setText( (numSaved + numNow) + "");
}
else if (operator.equals("-")) {
if (lastPress == "等號") { //累記運算時的演算法(一直按等號)
txtDis.setText( (numNow - numSaved) + "");
}
else {
txtDis.setText( (numSaved - numNow) + "");
}
}
else if (operator.equals("*")) {
txtDis.setText( (numSaved * numNow) + "");
}
else if (operator.equals("/")) {
if (lastPress == "等號") { //累記運算時的演算法(一直按等號)
txtDis.setText( (numNow / numSaved) + "");
}
else {
txtDis.setText( (numSaved / numNow) + "");
}
}
if (lastPress != "等號") { //是第一次,以後按累記運算
numSaved = numNow; //保存數改為後一個數
}
lastPress = "等號"; //添加運算符標記,下次文本框清空
}
});
//給復位符「C」按鈕添加監聽器
btnGrp[16].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
txtDis.setText("0");
numSaved = 0;
operator = "";
lastPress = "";
}
});
}
}
=====================第二個類=============================
import javax.swing.*;
public class Test {
public Test() {
CalculatorFrame calframe = new CalculatorFrame(); //新窗口
calframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //設置關閉
calframe.setLocationRelativeTo(null); //窗口置中
calframe.setVisible(true); //顯示窗口
calframe.(false); //使用windows視感
calframe.setResizable(false); //窗口不可調大小
}
public static void main(String[] args) {
Test test = new Test();
}
}
㈡ 用java寫一個登陸界面代碼。
具體框架使用jframe,文本框組件:JTextField;密碼框組件:JPasswordField;標簽組件:JLabel;復選框組件:JCheckBox;單選框組件:JRadioButton;按鈕組件JButton。
登錄界面:
Swing 是一個為Java設計的GUI工具包。
Swing是JAVA基礎類的一部分。
Swing包括了圖形用戶界面(GUI)器件如:文本框,按鈕,分隔窗格和表。
Swing提供許多比AWT更好的屏幕顯示元素。它們用純Java寫成,所以同Java本身一樣可以跨平台運行,這一點不像AWT。它們是JFC的一部分。它們支持可更換的面板和主題(各種操作系統默認的特有主題),然而不是真的使用原生平台提供的設備,而是僅僅在表面上模仿它們。這意味著你可以在任意平台上使用JAVA支持的任意麵板。輕量級組件的缺點則是執行速度較慢,優點就是可以在所有平台上採用統一的行為。
概念解析:
JFrame– java的GUI程序的基本思路是以JFrame為基礎,它是屏幕上window的對象,能夠最大化、最小化、關閉。
JPanel– Java圖形用戶界面(GUI)工具包swing中的面板容器類,包含在javax.swing 包中,可以進行嵌套,功能是對窗體中具有相同邏輯功能的組件進行組合,是一種輕量級容器,可以加入到JFrame窗體中。。
JLabel– JLabel 對象可以顯示文本、圖像或同時顯示二者。可以通過設置垂直和水平對齊方式,指定標簽顯示區中標簽內容在何處對齊。默認情況下,標簽在其顯示區內垂直居中對齊。默認情況下,只顯示文本的標簽是開始邊對齊;而只顯示圖像的標簽則水平居中對齊。
JTextField–一個輕量級組件,它允許編輯單行文本。
JPasswordField– 允許我們輸入了一行字像輸入框,但隱藏星號(*) 或點創建密碼(密碼)
JButton– JButton 類的實例。用於創建按鈕類似實例中的 "Login"。
㈢ Java編寫一個圖形界面
rcp(SWT/JFace)開發的要不要,同樣是java的
㈣ 使用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)的計算器應用程序,完成簡單的算術運算
下午發
五分鍾搞定,先給你發個簡單的,照例子自己去做你想要的計液念算器
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;
}
}
㈥ 請設計一個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編程採用圖形界面實現兩個內容的交換,圖形界面如下圖
以下是一個簡單的Java GUI程序,可以實現兩個內容(字元串、圖片等)之間的交換:
Copy code
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class SwapContent extends JFrame implements ActionListener {
private JLabel label1, label2;
private JButton swapBtn;
public SwapContent() {
// 設置窗口大小和標題
setSize(400, 300);
setTitle("Swap Content Demo");
// 創建標簽和按鈕模喚
label1 = new JLabel("Content A");
label2 = new JLabel("Content B");
swapBtn = new JButton("Swap");
// 設置標簽和按鈕的位置和大小
label1.setBounds(50, 50, 100, 30);
label2.setBounds(200, 50, 100, 30);
swapBtn.setBounds(150, 150, 100, 30);
// 將標簽和按鈕添加到窗口中
add(label1);
add(label2);
add(swapBtn);
// 注冊按鈕的事件監聽器
swapBtn.addActionListener(this);
// 設置窗口的默認關閉方式
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void actionPerformed(ActionEvent e) {
// 獲取標簽的內容
String temp = label1.getText();
label1.setText(label2.getText());
label2.setText(temp);
}
public static void main(String[] args) {
// 創建窗口對象並顯示
SwapContent sc = new SwapContent();
sc.setVisible(true);
}
}
該程序創建了一個窗口,包括兩個標簽(label1和label2)和一個按鈕(swapBtn)。當用戶點擊按鈕時,程序會交換label1和label2的內容。
在程序的actionPerformed方法中,程序將label1和label2的內容交換。具體實現是,首先使用旦冊凱label1.getText()獲取label1的內容,並將其保存到一個臨時變數temp中;然後,將label1的內容設置為label2的內容,將label2的內容設置為temp的姿裂值。這樣,label1和label2的內容就被互換了。
在main方法中,程序創建了SwapContent對象,並將其顯示出來。程序運行後,用戶可以在窗口中交換label1和label2的內容。
㈧ 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監聽者介面。