1. 用java编写一个图形类,该类具有长和高属性,具有求面积的方法
package .shape;
abstract class Shape {//定义抽象父类Shape
public double width;
public double height;
abstract double getArea(); //定义求解面积的方法
}
package .shape;
public class Rect extends Shape {
@Override
double getArea() {
return width*height;
}
}
package .shape;
public class Trangle extends Shape {
double sideA;
double sideB;
double sideC;
boolean isTrangel;
public Trangle(double a,double b,double c)
{
sideA=a;sideB=b;sideC=c;
if(a+b>c&&a+c>b&&b+c>a)
{
System.out.println("我是一个三角形");
isTrangel = true;
}
else
{
System.out.println("我不是一个三角形");
isTrangel = false;
}
}
@Override
double getArea() {
double area = 0d;
if(isTrangel)
{
double p=(sideA+sideB+sideC)/2.0;
area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC));
System.out.println("三角形面积是:"+area);
}
else
{
System.out.println("不是一个三角形,不能计算面积");
}
return area;
}
}
package .shape;
public class TestArea {
public static void main(String[] args) {
Shape rectangle = new Rect();
rectangle.height=1.1;
rectangle.width=5.0;
System.out.println("矩形的面积是:"+rectangle.getArea());
//三角形
Shape tran = new Trangle(2.3,4.5,5.6);
System.out.println("三角形的面积是:"+tran.getArea());
}
}
运行结果:
矩形的面积是:5.5
我是一个三角形
三角形面积是:4.966246067202064
三角形的面积是:4.966246067202064
2. java编写一个图形界面程序
importjava.awt.*;
importjava.awt.event.*;
importjava.util.*;
importjavax.swing.*;
importjavax.swing.border.Border;
classMainFrameextendsJFrame{
=1L;
privateMap<String,Integer>sizes=newHashMap<String,Integer>();
privateMap<String,Integer>styles=newHashMap<String,Integer>();
privateMap<String,Integer>toppings=newHashMap<String,Integer>();
publicMainFrame(){
sizes.put("ExtraLarge",10);
sizes.put("Large",8);
sizes.put("Medium",5);
sizes.put("Small",3);
styles.put("DeepDish",20);
styles.put("Regular",10);
styles.put("ThinCrust",5);
styles.put("Chicago",3);
toppings.put("Cheese",8);
toppings.put("Tomato",7);
toppings.put("Peppers",6);
toppings.put("Peperoni",5);
this.setTitle("布局及事件处理");
this.setSize(450,350);
this.setLayout(newBorderLayout());
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabellblTitle=newJLabel();
lblTitle.setText("PizzeriaJuno");
lblTitle.setFont(newFont("宋体",Font.BOLD,36));
lblTitle.setHorizontalAlignment(SwingConstants.CENTER);
this.add("North",lblTitle);
JPanelbodyPanel=newJPanel();
bodyPanel.setLayout(newGridLayout(2,1));
this.add("Center",bodyPanel);
JPanellistPanel=newJPanel();
listPanel.setLayout(newGridLayout(1,3));
listPanel.setSize(200,200);
bodyPanel.add(listPanel);
BorderlineBorder=BorderFactory.createLineBorder(Color.BLACK);
JPanelsizePanel=newJPanel();
sizePanel.setLayout(newBorderLayout());
listPanel.add(sizePanel);
JLabelsizeTitle=newJLabel();
sizeTitle.setText("Sizes");
sizePanel.add("North",sizeTitle);
JListsizeList=newJList(sizes.keySet().toArray());
sizeList.setSize(100,100);
sizeList.setBorder(lineBorder);
sizeList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
sizePanel.add(sizeList);
JPanelstylePanel=newJPanel();
stylePanel.setLayout(newBorderLayout());
listPanel.add(stylePanel);
JLabelstyleTitle=newJLabel();
styleTitle.setText("Styles");
stylePanel.add("North",styleTitle);
JListstyleList=newJList(styles.keySet().toArray());
styleList.setSize(100,100);
styleList.setBorder(lineBorder);
styleList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
stylePanel.add(styleList);
JPaneltoppingPanel=newJPanel();
toppingPanel.setLayout(newBorderLayout());
listPanel.add(toppingPanel);
JLabeltoppingTitle=newJLabel();
toppingTitle.setText("Toppings");
toppingPanel.add("North",toppingTitle);
JListtoppingList=newJList(toppings.keySet().toArray());
toppingList.setSize(100,100);
toppingList.setBorder(lineBorder);
toppingPanel.add(toppingList);
JTextAreatxtResult=newJTextArea();
txtResult.setEditable(false);
bodyPanel.add(txtResult);
JPanelbottomPanel=newJPanel();
bottomPanel.setLayout(newGridLayout(1,3));
this.add("South",bottomPanel);
JLabellabel1=newJLabel("Clicktocompleteorder");
bottomPanel.add(label1);
JButtonbtnRingUp=newJButton("Ringup");
btnRingUp.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
if(sizeList.getSelectedValue()==null){
JOptionPane.showMessageDialog(MainFrame.this,"Pleaseselectsize.");
return;
}
if(styleList.getSelectedValue()==null){
JOptionPane.showMessageDialog(MainFrame.this,"Pleaseselectstyle.");
return;
}
if(toppingList.getSelectedValue()==null){
JOptionPane.showMessageDialog(MainFrame.this,"Pleaseselecttopping.");
return;
}
floattotal=0;
Stringsize=sizeList.getSelectedValue().toString();
total+=sizes.get(size);
Stringstyle=styleList.getSelectedValue().toString();
total+=styles.get(style);
Stringresult=size+"Pizza,"+style+"Style";
Object[]toppings=toppingList.getSelectedValues();
for(Objecttopping:toppings){
result+="
+"+topping.toString();
total+=MainFrame.this.toppings.get(topping.toString());
}
result+="
Total:"+total;
txtResult.setText(result);
}
});
bottomPanel.add(btnRingUp);
JButtonbtnQuit=newJButton("Quit");
btnQuit.addActionListener(newActionListener(){
@Override
publicvoidactionPerformed(ActionEvente){
MainFrame.this.dispose();
}
});
bottomPanel.add(btnQuit);
}
}
publicclassApp{
publicstaticvoidmain(String[]args){
MainFramemainFrame=newMainFrame();
mainFrame.setVisible(true);
}
}
3. java图形界面编程
因为这是个applet 不能直接运行
注意:applet不能直接用java命令运行
方法(步骤):
1、Javac welcome.java后生版成welcome.class
2、在跟welcome.class同一级的目录下新建一权个文本文件,并输入:
<applet code="welcome.class"
width=320 height=180>
</applet>
3、保存并将文件名改为welcome.html
(这个html文件的名字任意,在这边我用welcome)
4、在cmd中输入appletviewer welcome.html便可以看见你的applet了
或直接把这个welcome.html拖入浏览器运行,也可以有同样效果
5、现在我解释一下上面的代码:
<applet>
</applet>
是必要的格式,在里面可以输入许多参数,其中code,width,height是必须的
code:欲运行的class的名字
width:applet窗口的宽度
height: applet窗口的高度
4. java 图形化编程
在做图形化编程时:一定要考虑到你是想用重量级的还是轻量级组件,重量级的我们一般用的不多,轻量级的我们用的非常多,轻量级的祖先都在import java.swing.*包中,他的里面有很多的控件供你使用.
但是,如果你想当一位程序员,我建议你用手工巧代码,不要用netbeans 和 myeclipse,这样可以锻炼你的思维能力,如果你是想体验一下的化,那你就随便用哪一个都行。
最后我想提醒你一下,关于图形化编程,未来的发展方向是电脑自动生成的,这一点你可以不用花费很多的时间在这里。
如果你的基础一般,我建议你还是多重视基础,特别是面向对象,继承,多态,线程,异常等,这些是你以后用的最多的,你若想当程序员你就必须掌握!
请原谅我的直言,我写的太多了,I'm sorry!
5. JAVA画图形
1.定义抽象类AbstractImage
import java.awt.Graphics;
public abstract class AbstractImage {
public abstract void draw(Graphics g);
}
2.(示例)定义正方形类
import java.awt.*;
public class Rec extends AbstractImage {
/*
* 1.定义正方形左上顶点的坐标(x,y)
* 2.定义正方形的宽为width,高为height
* 3.写构造方法,setter getter方法
* */
private int x;
private int y;
private int width;
private int height;
public Rec(){
}
public Rec(int x, int y, int width, int height) {
this.x = x;
this.y = y;
this.width = width;
this.height = height;
}
//重写draw方法:正方形的draw方法
public void draw(Graphics g) {
Color c=g.getColor();//获得窗口的前景色
g.setColor(Color.BLUE);//设置正方形的前景色
g.fillRect(x, y, width, height);//画出正方形
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
public int getHeight() {
return height;
}
public void setHeight(int height) {
this.height = height;
}
}
3.定义一个测试类,有main方法
在这个测试类中定义一个窗口(lanchFrame方法 会自动调用paint方法 paint方法里调用正方形的draw方法),到时我们要在这个窗口里画出正方形
import java.awt.*;
import java.awt.event.*;
public class Test extends Frame{
//定义窗口的大小为常量
private static final int GAME_WIDTH = 800;
private static final int GAME_HEIGHT = 600;
public static void main(String [] args){
Test t =new Test();
t.lanchFrame();
}
private void lanchFrame() {
this.setLocation(400,300);//设置窗口的位置(以屏幕的左上角为基准)
this.setSize(GAME_WIDTH,GAME_HEIGHT);//设置窗口的大小
this.setTitle("画图测试");
//匿名类实现关闭窗口
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
this.setResizable(false);//设置窗口不可以改变大小
this.setBackground(Color.GREEN);//设置窗口的背景色为绿色
setVisible(true);//设置窗口可见
}
public void paint(Graphics g){
//在这里实例化正方形类,并调用它的draw方法
Rec rec=new Rec(150,150,200,200);//在实例化的时候就可以指定正方形的大小
rec.draw(g);//这里把paint方法中的画笔g传递给正方形的draw方法
}
}
//其他两个图形也一样,画圆用的是画笔g的fillOval()方法
4.运行测试
在硬盘上建个文件夹,如E:\test\ 在这个文件夹下把这三个文件都放进去
在dos下编译测试:
javac Test.java
java Test
如果实在IDE中测试,那我就不多说了。
5.总结:
【1】先画出窗口lanchFrame,并设置窗口的属性,如大小、可见、不可以随意改动大小、位置、可以通过关闭按钮关闭窗口
【2.】在窗口中画出想要画的图形,lanchFrame自动调用paint方法,在paint方法中调用具体图形的draw方法。
6. 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的内容。
7. JAVA也可以用于图像的设计吗
是的,Java可以用于图像的设计。Java提供了许多图形库和工具,可以用于创建和处理图像。以下是一些常用的Java图形库和工具:搭衡
1. Java 2D API:Java 2D API提供了一组用于创建和处理2D图形的类和接口,包括绘图、图像处理、颜色管理和字体等方面的功能。
2. JavaFX:JavaFX是一个用于创建富客户端应用程序的凯困框架,包括图形、媒体、界面和动画等方面的功能。JavaFX提供了一组用于创建和处理图像的类和接口,可以用于创建各种类型的图像和动画效果。
3. AWT:Abstract Window Toolkit(AWT)是Java的原始图形库,提供了一组用于创建和处理图形用户界面(GUI)的类和接口。AWT包括一些基本的绘图和事件处理功能,但是相对于Java 2D API和JavaFX,其功能较为有限。
4. Java图像处理库(Java Image Processing Library,JIPL):JIPL是一个开源的Java图像处理库,提供了一组用于处理和编辑图像的类和方法,包括图像过滤器盯枝念、噪声消除、边缘检测、图像变换和颜色空间转换等方面的功能。
总之,Java可以用于图像的设计,开发人员可以根据具体需求选择适合的图形库和工具。
8. 怎样用java编写图形界面的Application程序
java编写图形界面需要用到swing等组件,可以在eclipse中安装windowbuilder来开发窗体,自动生成窗体代码,然后自己再根据需要修改,如:
package mainFrame;
import java.awt.EventQueue;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.UIManager;
import javax.swing.;
import javax.swing.border.EmptyBorder;
public class Mian_login extends JFrame {
private JPanel contentPane;
private JTextField text_LoginName;
private JPasswordField Login_password;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
Mian_login frame = new Mian_login();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public Mian_login() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(500, 200, 443, 300);
setResizable(false);
setTitle("登 录");
/*获取系统按钮样式*/
String lookAndFeel = UIManager.getSystemLookAndFeelClassName();
try {
UIManager.setLookAndFeel(lookAndFeel);
} catch (ClassNotFoundException e1) {
e1.printStackTrace();
} catch (InstantiationException e1) {
e1.printStackTrace();
} catch (IllegalAccessException e1) {
e1.printStackTrace();
} catch ( e1) {
e1.printStackTrace();
}
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JPanel panel = new JPanel();
panel.setOpaque(false);
panel.setBounds(0, 0, 434, 272);
contentPane.add(panel);
panel.setLayout(null);
JButton btn_Login = new JButton("u767Bu5F55");
btn_Login.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
}
});
btn_Login.setBounds(88, 195, 70, 23);
panel.add(btn_Login);
JButton btn_cancel = new JButton("u53D6u6D88");
btn_cancel.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
dispose();
}
});
btn_cancel.setBounds(268, 195, 70, 23);
panel.add(btn_cancel);
JLabel lblNewLabel_name = new JLabel("u7528u6237u540D");
lblNewLabel_name.setHorizontalAlignment(SwingConstants.CENTER);
lblNewLabel_name.setOpaque(true);
lblNewLabel_name.setBounds(88, 48, 70, 23);
panel.add(lblNewLabel_name);
JLabel lblNewLabel_passwd = new JLabel("u5BC6u7801");
lblNewLabel_passwd.setHorizontalAlignment(SwingConstants.CENTER);
lblNewLabel_passwd.setOpaque(true);
lblNewLabel_passwd.setBounds(88, 102, 70, 23);
panel.add(lblNewLabel_passwd);
JCheckBox chckbx_remember = new JCheckBox("u8BB0u4F4Fu5BC6u7801");
chckbx_remember.setBounds(102, 150, 84, 23);
panel.add(chckbx_remember);
text_LoginName = new JTextField();
text_LoginName.setBounds(182, 48, 156, 23);
panel.add(text_LoginName);
text_LoginName.setColumns(10);
Login_password = new JPasswordField();
Login_password.setBounds(182, 102, 156, 23);
panel.add(Login_password);
JCheckBox chckbx_AutoLogin = new JCheckBox("u81EAu52A8u767Bu5F55");
chckbx_AutoLogin.setBounds(233, 150, 84, 23);
panel.add(chckbx_AutoLogin);
JLabel Label_background = new JLabel("");
Label_background.setIcon(new ImageIcon("E:\JAVA_workplace\0002-u754Cu9762u8BBEu8BA1\images\background3.jpg"));
Label_background.setBounds(0, 0, 437, 272);
contentPane.add(Label_background);
}
}