導航:首頁 > 編程語言 > java圖形開發

java圖形開發

發布時間:2024-02-01 02:34:36

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);

}

}


閱讀全文

與java圖形開發相關的資料

熱點內容
壓縮完了文件去哪裡找 瀏覽:380
武裝突襲3浩方聯機版本 瀏覽:674
網路機頂盒移動網路 瀏覽:391
iphone手機百度雲怎麼保存到qq 瀏覽:148
資料庫設計與實踐讀後感 瀏覽:112
js對象是什麼 瀏覽:744
網頁文件存pdf 瀏覽:567
文件夾正裝 瀏覽:279
剛復制的文件找不到怎麼辦 瀏覽:724
試運行適用於哪些體系文件 瀏覽:987
ghost文件復制很慢 瀏覽:967
傑德原車導航升級 瀏覽:240
編程dest是什麼意思 瀏覽:935
linux埠鏡像 瀏覽:820
iphone5屏幕清塵 瀏覽:157
機頂盒密碼怎麼改 瀏覽:672
w7系統下載32位教程 瀏覽:618
pcb文件包括哪些內容 瀏覽:598
g00文件 瀏覽:607
用bat程序刪除程序 瀏覽:516

友情鏈接