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