java怎麼實現圖形化界面,java圖形化界面的實現

本文目錄一覽:

怎樣用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.UnsupportedLookAndFeelException;

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 (UnsupportedLookAndFeelException 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(“\u767B\u5F55”);

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(“\u53D6\u6D88”);

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(“\u7528\u6237\u540D”);

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(“\u5BC6\u7801”);

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(“\u8BB0\u4F4F\u5BC6\u7801”);

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(“\u81EA\u52A8\u767B\u5F55”);

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-\u754C\u9762\u8BBE\u8BA1\\images\\background3.jpg”));

Label_background.setBounds(0, 0, 437, 272);

contentPane.add(Label_background);

}

}

java編寫一個圖形界面程序

import java.awt.*;

import java.awt.event.*;

import java.util.*;

import javax.swing.*;

import javax.swing.border.Border;

class MainFrame extends JFrame {

private static final long serialVersionUID = 1L;

private MapString, Integer sizes = new HashMapString, Integer();

private MapString, Integer styles = new HashMapString, Integer();

private MapString, Integer toppings = new HashMapString, Integer();

public MainFrame() {

sizes.put(“Extra Large”, 10);

sizes.put(“Large”, 8);

sizes.put(“Medium”, 5);

sizes.put(“Small”, 3);

styles.put(“Deep Dish”, 20);

styles.put(“Regular”, 10);

styles.put(“Thin Crust”, 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(new BorderLayout());

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JLabel lblTitle = new JLabel();

lblTitle.setText(“Pizzeria Juno”);

lblTitle.setFont(new Font(“宋體”, Font.BOLD, 36));

lblTitle.setHorizontalAlignment(SwingConstants.CENTER);

this.add(“North”, lblTitle);

JPanel bodyPanel = new JPanel();

bodyPanel.setLayout(new GridLayout(2, 1));

this.add(“Center”, bodyPanel);

JPanel listPanel = new JPanel();

listPanel.setLayout(new GridLayout(1, 3));

listPanel.setSize(200, 200);

bodyPanel.add(listPanel);

Border lineBorder = BorderFactory.createLineBorder(Color.BLACK);

JPanel sizePanel = new JPanel();

sizePanel.setLayout(new BorderLayout());

listPanel.add(sizePanel);

JLabel sizeTitle = new JLabel();

sizeTitle.setText(“Sizes”);

sizePanel.add(“North”, sizeTitle);

JList sizeList = new JList(sizes.keySet().toArray());

sizeList.setSize(100, 100);

sizeList.setBorder(lineBorder);

sizeList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

sizePanel.add(sizeList);

JPanel stylePanel = new JPanel();

stylePanel.setLayout(new BorderLayout());

listPanel.add(stylePanel);

JLabel styleTitle = new JLabel();

styleTitle.setText(“Styles”);

stylePanel.add(“North”, styleTitle);

JList styleList = new JList(styles.keySet().toArray());

styleList.setSize(100, 100);

styleList.setBorder(lineBorder);

styleList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);

stylePanel.add(styleList);

JPanel toppingPanel = new JPanel();

toppingPanel.setLayout(new BorderLayout());

listPanel.add(toppingPanel);

JLabel toppingTitle = new JLabel();

toppingTitle.setText(“Toppings”);

toppingPanel.add(“North”, toppingTitle);

JList toppingList = new JList(toppings.keySet().toArray());

toppingList.setSize(100, 100);

toppingList.setBorder(lineBorder);

toppingPanel.add(toppingList);

JTextArea txtResult = new JTextArea();

txtResult.setEditable(false);

bodyPanel.add(txtResult);

JPanel bottomPanel = new JPanel();

bottomPanel.setLayout(new GridLayout(1, 3));

this.add(“South”, bottomPanel);

JLabel label1 = new JLabel(“Click to complete order”);

bottomPanel.add(label1);

JButton btnRingUp = new JButton(“Ring up”);

btnRingUp.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

if(sizeList.getSelectedValue() == null) {

JOptionPane.showMessageDialog(MainFrame.this, “Please select size.”);

return;

}

if(styleList.getSelectedValue() == null) {

JOptionPane.showMessageDialog(MainFrame.this, “Please select style.”);

return;

}

if(toppingList.getSelectedValue() == null) {

JOptionPane.showMessageDialog(MainFrame.this, “Please select topping.”);

return;

}

float total = 0;

String size = sizeList.getSelectedValue().toString();

total += sizes.get(size);

String style = styleList.getSelectedValue().toString();

total += styles.get(style);

String result = size + ” Pizza, ” + style + ” Style”;

Object[] toppings = toppingList.getSelectedValues();

for(Object topping : toppings) {

result += “\n  +” + topping.toString();

total += MainFrame.this.toppings.get(topping.toString());

}

result += “\n  Total: ” + total;

txtResult.setText(result);

}

});

bottomPanel.add(btnRingUp);

JButton btnQuit = new JButton(“Quit”);

btnQuit.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent e) {

MainFrame.this.dispose();

}

});

bottomPanel.add(btnQuit);

}

}

public class App {

public static void main(String[] args) {

MainFrame mainFrame = new MainFrame();

mainFrame.setVisible(true);

}

}

Java編寫一個圖形界面

我覺得還是我的好些。。。

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.FlowLayout;

import java.awt.GridLayout;

import java.awt.Toolkit;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.io.FileOutputStream;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JTextField;

import javax.swing.SwingConstants;

public class TestSwing extends JFrame{

private JLabel label1, label2, label3, label4,label5,label6,label7;

private JPanel panel,panel1,panel2;

private JTextField tField1,tField2,tField3,tField4,tField5,tField6,tField7,tField8,tField9;

private JButton button;

private String filepath=”c:\\info.dat”;

public TestSwing(){

init();

this.setSize(300, 280);

this.setLocation(

(Toolkit.getDefaultToolkit().getScreenSize().width – this

.getSize().width) / 2,

(Toolkit.getDefaultToolkit().getScreenSize().height – this

.getSize().height) / 2);

this.setResizable(false);

this.setVisible(true);

this.setTitle(“info”);

this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public void init(){

initPanel();

initLabel();

initTextField();

initButton();

initContent();

}

private void initContent(){

panel1.add(label1);

panel1.add(tField1);

panel1.add(label2);

panel1.add(tField2);

panel1.add(label3);

panel1.add(tField3);

panel1.add(label4);

panel1.add(tField4);

panel1.add(label5);

panel1.add(tField5);

panel1.add(label6);

panel1.add(tField6);

panel1.add(label7);

panel1.add(tField7);

panel1.add(tField8);

panel1.add(tField9);

panel2.add(button);

panel.add(panel1,BorderLayout.CENTER);

panel.add(panel2,BorderLayout.SOUTH);

getContentPane().add(panel);

}

private void initPanel(){

panel = new JPanel();

panel.setLayout(new FlowLayout());

panel.setBackground(Color.WHITE);

panel1 = new JPanel();

GridLayout upLayout = new GridLayout(8, 2);

panel1.setLayout(upLayout);

panel2 = new JPanel();

panel2.setLayout(new FlowLayout());

}

private void initLabel(){

label1 = new JLabel(“IP地址”, SwingConstants.LEFT);

label2 = new JLabel(“端口”, SwingConstants.LEFT);

label3 = new JLabel(“訪問地址”, SwingConstants.LEFT);

label4 = new JLabel(“XXXXX”, SwingConstants.LEFT);

label5 = new JLabel(“XXXXX”, SwingConstants.LEFT);

label6 = new JLabel(“XXXXX”, SwingConstants.LEFT);

label7 = new JLabel(“XXXXX”, SwingConstants.LEFT);

}

private void initTextField(){

tField1 = new JTextField(10);

tField2 = new JTextField(10);

tField3 = new JTextField(10);

tField4 = new JTextField(10);

tField5 = new JTextField(10);

tField6 = new JTextField(10);

tField7 = new JTextField(10);

tField8 = new JTextField(10);

tField9 = new JTextField(10);

}

private void initButton(){

button = new JButton(“完成”);

button.addMouseListener(new MouseAdapter(){

//左鍵點擊

public void mouseClicked(MouseEvent e) {

String ipv = tField1.getText().trim();

String portv = tField2.getText().trim();

String addrv = tField3.getText().trim();

String xx1v = tField4.getText().trim();

String xx2v = tField5.getText().trim();

String xx3v = tField6.getText().trim();

String xx4v = tField7.getText().trim();

String inputx = tField8.getText().trim();

String inputxv = tField9.getText().trim();

createFile(ipv, portv, addrv, xx1v, xx2v, xx3v, xx4v, inputx, inputxv);

JOptionPane.showMessageDialog(null, “保存成功”);

tField1.setText(“”);

tField2.setText(“”);

tField3.setText(“”);

tField4.setText(“”);

tField5.setText(“”);

tField6.setText(“”);

tField7.setText(“”);

tField8.setText(“”);

tField9.setText(“”);

}

});

}

public static void main(String[]args){

new TestSwing();

}

private void createFile(String ipv,String portv ,String addrv,String xx1v,String xx2v,String xx3v,String xx4v,String inputx,String inputxv){

StringBuffer context = new StringBuffer();

context.append(“ip=”).append(ipv).append(“\n”);

context.append(“port=”).append(portv).append(“\n”);

context.append(“addr=”).append(addrv).append(“\n”);

context.append(“xx1=”).append(xx1v).append(“\n”);

context.append(“xx2=”).append(xx2v).append(“\n”);

context.append(“xx3=”).append(xx3v).append(“\n”);

context.append(“xx4=”).append(xx4v).append(“\n”);

context.append(inputx).append(“=”).append(inputxv).append(“”);

FileOutputStream fos = null;

try {

fos = new FileOutputStream(filepath);

fos.write(context.toString().getBytes());

} catch (Exception e) {

} finally {

if (fos != null)

try {

fos.close();

} catch (Exception e) {

}

}

}

}

java圖形界面的布局

沒用過SWT的人路過,提供一個SWING:

窗口用JFrame(frame),布局為BorderLayout.

頂部為JLabel(labelTop),帶圖片和文字,用frame.add(labelTop, BorderLayout.NORTH)加入

左面為JPanel(panelLeft),布局為BoxLayout,參數Y_AXIS.需要在創建JPanel時設置Layout為NULL,然後再創建BoxLayout時需要把已經建立的panelLeft作為參數傳進去,然後再設置panelLeft的Layout為那個BoxLayout。用frame.add(panelLeft, BorderLayout.WEST)加入

中間為一堆不同功能的JPanel,布局根據功能而定了,在點擊按鈕時,移除frame此時中間的panel(記錄在一個自己的變量panelCenter里),然後加入按鈕對應的panel,再把加入的panel存入變量panelCenter.

Java編寫圖形用戶界面程序

運行如圖

參考代碼如下

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class RegDemo extends JFrame implements ActionListener{

JTextField jtf;

JPasswordField jpf;

public RegDemo() {

        //組件的創建, 和布局安排

JPanel jpc = new JPanel();//默認流式布局

JPanel jp1 = new JPanel(new GridLayout(2, 2,5,10));//網格布局

jp1.setBorder(BorderFactory.createTitledBorder(“用戶註冊”));

JLabel jl1 = new JLabel(“用戶名:”);

jtf = new JTextField(10);

JLabel jl2 = new JLabel(“密碼:”);

jpf = new JPasswordField(10);

                jpf.setEchoChar(‘*’);//用*號來隱藏密碼的顯示

jp1.add(jl1);jp1.add(jtf);

jp1.add(jl2);jp1.add(jpf);

jpc.add(jp1);

add(jpc);

JButton jb1 = new JButton(“提交”);

jb1.addActionListener(this);

jb1.setActionCommand(“yes”);

JButton jb2 = new JButton(“取消”);

jb2.addActionListener(this);

jb2.setActionCommand(“no”);

JPanel jp2 = new JPanel();

jp2.add(jb1);jp2.add(jb2);

add(jp2,BorderLayout.SOUTH);

setTitle(“用戶註冊界面”);

        setSize(280, 280);

        setLocationRelativeTo(null);//窗口居中

        setDefaultCloseOperation(EXIT_ON_CLOSE);//

        setVisible(true);

}

public static void main(String[] args) {

new RegDemo();

}

@Override

public void actionPerformed(ActionEvent e) {

if(e.getActionCommand().equals(“yes”)){

String name  = jtf.getText().trim();

String pwd = new String(jpf.getPassword());

if(name.equals(“”)||pwd.equals(“”)){

JOptionPane.showMessageDialog(this, “你還沒有輸入用戶名或者密碼”);

}else{

JOptionPane.showMessageDialog(this, “註冊成功!用戶名”+name+”,密碼”+pwd);

}

}else{

jtf.setText(“”);

jpf.setText(“”);

}

}

}

JAVA的圖形界面是怎麼出來的

,jdk 裏面包含很多包,每個包都有特定的功能,最初學的是lang包是語言基礎,utli是實用包提供集合日期函數隨機等,而GUI 來自於awt (abstract windows tool)和 swing (slight window),這2個包提供了截面所需要的全部控件,像記事本就是典型應用QQ界面什麼都可以作出來.至於applet是java 小程序,做點貪吃蛇什麼的用它.至於具體的應用你可以去看java高級教程.那裡還包含網絡接口等.

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/280380.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-21 13:03
下一篇 2024-12-21 13:03

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發佈。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29
  • Java任務下發回滾系統的設計與實現

    本文將介紹一個Java任務下發回滾系統的設計與實現。該系統可以用於執行複雜的任務,包括可回滾的任務,及時恢復任務失敗前的狀態。系統使用Java語言進行開發,可以支持多種類型的任務。…

    編程 2025-04-29
  • Java 8 Group By 會影響排序嗎?

    是的,Java 8中的Group By會對排序產生影響。本文將從多個方面探討Group By對排序的影響。 一、Group By的概述 Group By是SQL中的一種常見操作,它…

    編程 2025-04-29

發表回復

登錄後才能評論