㈠ 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监听者接口。