java圖形界面示例源代碼(java圖形界面編程)

本文目錄一覽:

java圖形界面設計實驗,求源代碼!

import javax.swing.*;

import java.awt.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

public class Calculator01 extends JFrame implements ActionListener {

JPanel jp1,jp2;

JTextField jt1,jt2,jt3;

JButton btn_add,btn_sub,btn_clean;

public Calculator01() {

init();

}

public void init() {

setTitle(“簡易計算器”);

setLocationRelativeTo(null);

setSize(600, 100);

jp1 = new JPanel();

jp2 = new JPanel();

add(jp1, BorderLayout.NORTH);

add(jp2,BorderLayout.SOUTH);

jt1 = new JTextField(15);

jp1.add(jt1);

jt2 = new JTextField(15);

jp1.add(jt2);

jt3 = new JTextField(15);

jp1.add(jt3);

btn_add = new JButton(“+”);

btn_add.addActionListener(this);

jp2.add(btn_add);

btn_sub = new JButton(“-“);

btn_sub.addActionListener(this);

jp2.add(btn_sub);

btn_clean = new JButton(“清除”);

btn_clean.addActionListener(this);

jp2.add(btn_clean);

setVisible(true);

}

public void actionPerformed(ActionEvent e)

{

if (e.getSource() == btn_clean)

{

jt1.setText(“”);

jt2.setText(“”);

jt3.setText(“”);

}

else

{

if (jt1.getText().equals(“”) || jt2.getText().equals(“”))

{

JOptionPane.showMessageDialog(null, “請在前兩個框輸入數字”);

}

else

{

double number1=Double.parseDouble(jt1.getText());

double number2=Double.parseDouble(jt2.getText());

double result=0;

if (e.getSource() == btn_add)

{

result = number1 + number2;

}

else

{

result = number1 – number2;

}

jt3.setText(“”+result);

}

}

}

}

求java圖形界面樹類編程源碼舉例。類似windows資源管理器那樣的。如附圖,2層2項即可。

public void init(){

Container contentPane=null;

DefaultMutableTreeNode treeNode=new DefaultMutableTreeNode(“我的電腦”);

DefaultMutableTreeNode treeNode1=new DefaultMutableTreeNode(“網路”);

DefaultMutableTreeNode treeNode2=new DefaultMutableTreeNode(“硬碟”);

DefaultMutableTreeNode treeNode1_1=new DefaultMutableTreeNode(“無限”);

DefaultMutableTreeNode treeNode1_2=new DefaultMutableTreeNode(“有限”);

DefaultMutableTreeNode treeNode2_1=new DefaultMutableTreeNode(“A”);

DefaultMutableTreeNode treeNode2_2=new DefaultMutableTreeNode(“B”);

treeNode.add(treeNode1);

treeNode.add(treeNode2);

treeNode1.add(treeNode1_1);

treeNode1.add(treeNode1_2);

treeNode2.add(treeNode2_1);

treeNode2.add(treeNode2_2);

JTree tree=new JTree(treeNode);

contentPane=getContentPane();

JPanel jp=new JPanel();

jp.add(tree);

contentPane.add(jp);

this.setSize(300,250);

this.setLocation(400, 300);

this.setVisible(true);

}

Java 用戶界面設計 求界面代碼

一: 首先弄清題目的意思

A.需要的主要組件列表:

1.  創建一個窗口,窗口標題叫Information

2.  3個標籤, 用於顯示文字 Name Number Class

3.  3個文本框, 用於填寫信息

4.  1個按鈕,  文字是確認

5.  1個文本域

B.業務邏輯

1. 當點擊按鈕確認的時候, 把 文本框的信息顯示到文本域

C.設計的主要技術

JLabel , JButton, JTextField …等, 都是swing的組件 ,  所以應該使用swing進行創建

二:  確定使用的布局

swing雖然重寫了大部分的組件, 但是布局, 依舊沿襲awt技術

分析圖片上的布局:

至少有2種方法可以實現, 

方法一: 絕對布局 , 優點:  配合可視化GUI拖曳, 可以完美的實現圖上的組件的位置

但是缺點也是致命的, 不同的操作系統平台下, 可能會出現位置的移動,

只適合開發平台, 移植效果差 .  所以不推薦使用

方法二: 靈活的表格布局, 配合流式布局 , 所有操作系統下,顯示效果都比較統一. 

三: 效果圖

四: 參考代碼

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class FrameDemo extends JFrame {

//申明需要的組件

private final JTextField jtf1,jtf2,jtf3;

private final JTextArea jta;

public FrameDemo() {

setTitle(“Information”);//設置窗口標題

setSize(320, 360);//設置窗口大小

setLocationRelativeTo(null);//設置窗口居中

setDefaultCloseOperation(EXIT_ON_CLOSE);//設置關閉時退出虛擬機

getContentPane().setLayout(new FlowLayout());//設置窗口布局為流式布局

JPanel jp = new JPanel(new GridLayout(4, 2));//設置jp面板為表格布局4行2列

//第一行

JPanel jp01 = new JPanel();

JLabel jl1 = new JLabel(“Name:”);

jp01.add(jl1);

JPanel jp1 = new JPanel();

jtf1 = new JTextField(8);

jp1.add(jtf1);

//第二行

JPanel jp02 = new JPanel();

JLabel jl2 = new JLabel(“Number:”);

jp02.add(jl2);

JPanel jp2 = new JPanel();

jtf2 = new JTextField(8);

jp2.add(jtf2);

//第三行

JPanel jp03 = new JPanel();

JLabel jl3 = new JLabel(“Class:”);

jp03.add(jl3);

JPanel jp3 = new JPanel();

jtf3 = new JTextField(8);

jp3.add(jtf3);

//第四行

JPanel jp04 = new JPanel();

JLabel jl4 = new JLabel(“”);

jp04.add(jl4);

JPanel jp4 = new JPanel();

JButton jb = new JButton(“確認”);

jp4.add(jb);

jp.add(jp01);

jp.add(jp1);

jp.add(jp02);

jp.add(jp2);

jp.add(jp03);

jp.add(jp3);

jp.add(jp04);

jp.add(jp4);

getContentPane().add(jp);

jta = new JTextArea();

jta.setColumns(20);//設置文本域的大小

jta.setEditable(false);//設置文本域不可編輯

jta.setBackground(jp.getBackground());//設置文本域的背景色和面板一樣

getContentPane().add(jta);

jb.addActionListener(new ActionListener() {//給按鈕添加事件

public void actionPerformed(ActionEvent e) {//點擊按鈕,顯示信息到文本域

String name = jtf1.getText();

String number = jtf2.getText();

String clazz = jtf3.getText();

jta.setText(“You name is “+name+” number is “+number+” class is “+clazz);

}

});

}

public static void main(String[] args) {

new FrameDemo().setVisible(true);//創建窗口,被設置為可見

}

}

五: 拓展

雖然圖形界面的實現方法是多樣的,  我們一定要根據具體情況, 選擇一個比較優化的 合理的, 符合業務邏輯的實現方法

JAVA的圖形用戶界面代碼

package hao;

import java.awt.BorderLayout;

import java.awt.Color;

import java.awt.Dimension;

import java.awt.GridLayout;

import java.io.File;

import javax.swing.BorderFactory;

import javax.swing.Box;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JComboBox;

import javax.swing.JLabel;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

import javax.swing.JTextPane;

import javax.swing.text.BadLocationException;

import javax.swing.text.SimpleAttributeSet;

import javax.swing.text.StyleConstants;

import javax.swing.text.StyledDocument;

public class ChatPanel extends JPanel {

private static final long serialVersionUID = 1L;

JButton send,record,saveRecord,image;

JTextArea inputArea;

JTextPane text;//注意用法****************************************************************************

JComboBox fontName = null, fontSize = null, fontStyle = null, fontColor = null,fontBackColor = null;

public StyledDocument doc = null; JScrollPane scrollPane;JPanel textChat;

JButton music;

public ChatPanel() {

setLayout(new BorderLayout());

text = new JTextPane();

text.setEditable(false);

doc = text.getStyledDocument();//跟蹤文本和圖片寫到該區域的位置*************************************

scrollPane = new JScrollPane(text);

//注意下面對JComboBox的巧用***********************************************************************

String[] str_name = { “宋體”, “黑體”, “Dialog”, “Gulim” };

String[] str_Size = { “12”, “14”, “18”, “22”, “30”, “40” };

String[] str_Style = { “常規”, “斜體”, “粗體”, “粗斜體” };

String[] str_Color = { “黑色”, “紅色”, “藍色”, “黃色”, “綠色” };

String[] str_BackColor = { “無色”, “灰色”, “淡紅”, “淡藍”, “淡黃”, “淡綠” };

fontName = new JComboBox(str_name);

fontSize = new JComboBox(str_Size);

fontStyle = new JComboBox(str_Style);

fontColor = new JComboBox(str_Color);

fontBackColor = new JComboBox(str_BackColor);

fontName.setBackground(new Color(255,153,255));

fontSize.setBackground(new Color(255,153,255));

fontStyle.setBackground(new Color(255,153,255));

fontColor.setBackground(new Color(255,153,255));

fontBackColor.setBackground(new Color(255,153,255));

Box box = Box.createVerticalBox();//創建一個可以容納多個Box組件的Box*******************************

Box box_1 = Box.createHorizontalBox();

Box box_2 = Box.createHorizontalBox();

Box box_4 = Box.createHorizontalBox();

box.add(box_1);

box.add(box_2);

box.add(box_4);

JLabel b1= new JLabel(“字體~~”), b2 = new JLabel(“樣式~~”),b3 = new JLabel(“字型大小~~”),b4 = new JLabel(“顏色~~”),b5 = new JLabel(“背景~~”);

b1.setBackground(new Color(255,153,255));

b2.setBackground(new Color(255,153,255));

b3.setBackground(new Color(255,153,255));

b4.setBackground(new Color(255,153,255));

b5.setBackground(new Color(255,153,255));

box_1.add(b1);

box_1.add(fontName);

box_1.add(Box.createHorizontalStrut(8));

box_1.add(b2);

box_1.add(fontStyle);

box_1.add(Box.createHorizontalStrut(8));

box_1.add(b3);

box_1.add(fontSize);

box_2.add(Box.createHorizontalStrut(8));

box_2.add(b4);

box_2.add(fontColor);

box_2.add(Box.createHorizontalStrut(8));

box_4.add(b5);

box_4.add(fontBackColor);

textChat = new JPanel();

textChat.setLayout(new BorderLayout());

textChat.setBackground(new Color(255,153,255));

inputArea = new JTextArea(3, 20);

inputArea.setLineWrap(true); //設置文本區的換行策略。88888*********************************

send = new JButton(“發送”);

record=new JButton(“顯示記錄”);

saveRecord=new JButton(“儲存記錄”);

image=new JButton(“表情”);

send.setBackground(new Color(255,153,255));

record.setBackground(new Color(255,153,255));

saveRecord.setBackground(new Color(255,153,255));

image.setBackground(new Color(255,153,255));

Box box_3 = Box.createHorizontalBox();

box_3.add(send); box_3.add(Box.createHorizontalStrut(8));//設置按鈕間距*************************888

box_3.add(record); box_3.add(Box.createHorizontalStrut(8)); //設置按鈕間距*************************888

box_3.add(saveRecord); box_3.add(Box.createHorizontalStrut(8));//設置按鈕間距*************************888

box_3.add(image);

box.setBorder(BorderFactory.createLineBorder(new Color(102,102,0),5));//設置Box的邊框線********************

box_3.setBorder(BorderFactory.createLineBorder(new Color(102,102,0),5));

textChat.add(box,BorderLayout.NORTH);

textChat.add(inputArea,BorderLayout.CENTER);

textChat.add(box_3, BorderLayout.SOUTH);

inputArea.requestFocus(true);

inputArea.setBorder(BorderFactory.createLineBorder(new Color(102,102,0),5));//設置輸入窗口邊框線*******************

text.setBorder(BorderFactory.createLineBorder(new Color(102,102,0),8));//設置輸入窗口邊框線*******************

JPanel audioPanel = new JPanel();//最上面的邊框************************************************************************

audioPanel.setBackground(new Color(255,153,255));

audioPanel.setLayout(new GridLayout(1,1));

music = new JButton(“想聽就聽”);

music.setPreferredSize(new Dimension(320,50));

music.setBorder(BorderFactory.createLineBorder(Color.BLACK,10));//設置輸入窗口邊框線*******************

audioPanel.add(music);

add(audioPanel, BorderLayout.NORTH);

add(scrollPane,BorderLayout.CENTER);

add(textChat, BorderLayout.SOUTH);

}

void insertIcon(ImageIcon image) {

text.setCaretPosition(doc.getLength());

text.insertIcon(image);

insert(new MessageStyle());//?????????????????????????????????????????????????????????????????????????????/

}

public void insert(MessageStyle attrib) {

try {

doc.insertString(doc.getLength(), attrib.getText() + “\n”, attrib.getAttrSet());//寫完後接著換行************

} catch (BadLocationException e) {

e.printStackTrace();

}

}

public MessageStyle getMessageStyle(String line) {

MessageStyle att = new MessageStyle();

att.setText(line);

att.setName((String) fontName.getSelectedItem());

att.setSize(Integer.parseInt((String) fontSize.getSelectedItem()));

String temp_style = (String) fontStyle.getSelectedItem();

if (temp_style.equals(“常規”)) {

att.setStyle(MessageStyle.GENERAL);

}

else if (temp_style.equals(“粗體”)) {

att.setStyle(MessageStyle.BOLD);

}

else if (temp_style.equals(“斜體”)) {

att.setStyle(MessageStyle.ITALIC);

}

else if (temp_style.equals(“粗斜體”)) {

att.setStyle(MessageStyle.BOLD_ITALIC);

}

String temp_color = (String) fontColor.getSelectedItem();

if (temp_color.equals(“黑色”)) {

att.setColor(new Color(0, 0, 0));

}

else if (temp_color.equals(“紅色”)) {

att.setColor(new Color(255, 0, 0));

}

else if (temp_color.equals(“藍色”)) {

att.setColor(new Color(0, 0, 255));

}

else if (temp_color.equals(“黃色”)) {

att.setColor(new Color(255, 255, 0));

}

else if (temp_color.equals(“綠色”)) {

att.setColor(new Color(0, 255, 0));

}

String temp_backColor = (String) fontBackColor.getSelectedItem();

if (!temp_backColor.equals(“無色”)) {

if (temp_backColor.equals(“灰色”)) {

att.setBackColor(new Color(200, 200, 200));

}

else if (temp_backColor.equals(“淡紅”)) {

att.setBackColor(new Color(255, 200, 200));

}

else if (temp_backColor.equals(“淡藍”)) {

att.setBackColor(new Color(200, 200, 255));

}

else if (temp_backColor.equals(“淡黃”)) {

att.setBackColor(new Color(255, 255, 200));

}

else if (temp_backColor.equals(“淡綠”)) {

att.setBackColor(new Color(200, 255, 200));

}

}

return att;

}

}

求java版畫圖程序的源代碼

找到了,很久以前寫的一個簡單畫圖,呵呵~當時要求用AWT寫,很難受。

package net.miqiang.gui;

import java.awt.BasicStroke;

import java.awt.BorderLayout;

import java.awt.Button;

import java.awt.Color;

import java.awt.Cursor;

import java.awt.Dimension;

import java.awt.Frame;

import java.awt.Graphics;

import java.awt.Graphics2D;

import java.awt.GridLayout;

import java.awt.Label;

import java.awt.Panel;

import java.awt.RenderingHints;

import java.awt.Toolkit;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.awt.event.MouseMotionListener;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

import java.awt.image.BufferedImage;

/**

* 簡單畫圖板程序

* 好久沒用 AWT 了,寫起來真彆扭,如果用 swing 會很舒服,有空再改寫吧。

*

* @author 米強

*

*/

public class TestMain extends Frame {

// 畫板

private Palette palette = null;

// 顯示當前顏色的面板

private Panel nonceColor = null;

// 畫筆粗細

private Label drawWidth = null;

// 畫筆端點的裝飾

private Label drawCap = null;

// 選取顏色按鈕的監聽事件類

private ButtonColorAction buttonColorAction = null;

// 滑鼠進入按鈕後游標樣式的監聽事件類

private ButtonCursor buttonCursor = null;

// 畫筆樣式的監聽事件

private ButtonStrokeAction buttonStrokeAction = null;

/**

* 構造方法

*

*/

public TestMain() {

// 設置標題欄文字

super(“簡易畫圖板”);

// 構造一個畫圖板

palette = new Palette();

Panel pane = new Panel(new GridLayout(2, 1));

// 畫筆顏色選擇器

Panel paneColor = new Panel(new GridLayout(1, 13));

// 12 個顏色選擇按鈕

Button [] buttonColor = new Button[12];

Color [] color = {Color.black, Color.blue, Color.cyan, Color.darkGray, Color.gray, Color.green, Color.magenta, Color.orange, Color.pink, Color.red, Color.white, Color.yellow};

// 顯示當前顏色的面板

nonceColor = new Panel();

nonceColor.setBackground(Color.black);

paneColor.add(nonceColor);

buttonColorAction = new ButtonColorAction();

buttonCursor = new ButtonCursor();

for(int i = 0; i buttonColor.length; i++){

buttonColor[i] = new Button();

buttonColor[i].setBackground(color[i]);

buttonColor[i].addActionListener(buttonColorAction);

buttonColor[i].addMouseListener(buttonCursor);

paneColor.add(buttonColor[i]);

}

pane.add(paneColor);

// 畫筆顏色選擇器

Panel paneStroke = new Panel(new GridLayout(1, 13));

// 控制畫筆樣式

buttonStrokeAction = new ButtonStrokeAction();

Button [] buttonStroke = new Button[11];

buttonStroke[0] = new Button(“1”);

buttonStroke[1] = new Button(“3”);

buttonStroke[2] = new Button(“5”);

buttonStroke[3] = new Button(“7”);

buttonStroke[4] = new Button(“9”);

buttonStroke[5] = new Button(“11”);

buttonStroke[6] = new Button(“13”);

buttonStroke[7] = new Button(“15”);

buttonStroke[8] = new Button(“17”);

buttonStroke[9] = new Button(“■”);

buttonStroke[10] = new Button(“●”);

drawWidth = new Label(“3”, Label.CENTER);

drawCap = new Label(“●”, Label.CENTER);

drawWidth.setBackground(Color.lightGray);

drawCap.setBackground(Color.lightGray);

paneStroke.add(drawWidth);

for(int i = 0; i buttonStroke.length; i++){

paneStroke.add(buttonStroke[i]);

buttonStroke[i].addMouseListener(buttonCursor);

buttonStroke[i].addActionListener(buttonStrokeAction);

if(i = 8){

buttonStroke[i].setName(“width”);

}else{

buttonStroke[i].setName(“cap”);

}

if(i == 8){

paneStroke.add(drawCap);

}

}

pane.add(paneStroke);

// 將畫筆顏色選擇器添加到窗體中

this.add(pane, BorderLayout.NORTH);

// 將畫圖板添加到窗體中

this.add(palette);

// 添加窗口監聽,點擊關閉按鈕時退出程序

this.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

// 設置窗體 ICON 圖標

this.setIconImage(Toolkit.getDefaultToolkit().createImage(“images/palette.png”));

// 設置窗口的大小

this.setSize(new Dimension(400, 430));

// 設置窗口位置,處於屏幕正中央

this.setLocationRelativeTo(null);

// 顯示窗口

this.setVisible(true);

}

/**

* 程序入口

*

* @param args

* 字元串數組參數

*/

public static void main(String[] args) {

new TestMain();

}

/**

* 選取顏色按鈕的監聽事件類

* @author 米強

*

*/

class ButtonColorAction implements ActionListener {

public void actionPerformed(ActionEvent e) {

Color color_temp = ((Button)e.getSource()).getBackground();

nonceColor.setBackground(color_temp);

palette.setColor(color_temp);

}

}

/**

* 滑鼠進入按鈕變換游標樣式監聽事件類

* @author 米強

*

*/

class ButtonCursor extends MouseAdapter {

public void mouseEntered(MouseEvent e) {

((Button)e.getSource()).setCursor(new Cursor(Cursor.HAND_CURSOR));

}

public void mouseExited(MouseEvent e) {

((Button)e.getSource()).setCursor(new Cursor(Cursor.DEFAULT_CURSOR));

}

}

/**

* 設置畫筆的監聽事件類

* @author 米強

*

*/

class ButtonStrokeAction implements ActionListener {

public void actionPerformed(ActionEvent e) {

Button button_temp = (Button) e.getSource();

String name = button_temp.getName();

if(name.equalsIgnoreCase(“width”)){

drawWidth.setText(button_temp.getLabel());

palette.setStroke(Float.parseFloat(button_temp.getLabel()));

}else if(name.equalsIgnoreCase(“cap”)){

drawCap.setText(button_temp.getLabel());

if(button_temp.getLabel().equals(“■”)){

palette.setStroke(BasicStroke.CAP_SQUARE);

}else if(button_temp.getLabel().equals(“●”)){

palette.setStroke(BasicStroke.CAP_ROUND);

}

}

}

}

}

/**

* 畫板類

*

* @author 米強

*

*/

class Palette extends Panel implements MouseListener, MouseMotionListener {

// 滑鼠 X 坐標的位置

private int mouseX = 0;

// 上一次 X 坐標位置

private int oldMouseX = 0;

// 滑鼠 Y 坐標的位置

private int mouseY = 0;

// 上一次 Y 坐標位置

private int oldMouseY = 0;

// 畫圖顏色

private Color color = null;

// 畫筆樣式

private BasicStroke stroke = null;

// 緩存圖形

private BufferedImage image = null;

/**

* 構造一個畫板類

*

*/

public Palette() {

this.addMouseListener(this);

this.addMouseMotionListener(this);

// 默認黑色畫筆

color = new Color(0, 0, 0);

// 設置默認畫筆樣式

stroke = new BasicStroke(3.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND);

// 建立 1280 * 1024 的 RGB 緩存圖象

image = new BufferedImage(1280, 1024, BufferedImage.TYPE_INT_RGB);

// 設置顏色

image.getGraphics().setColor(Color.white);

// 畫背景

image.getGraphics().fillRect(0, 0, 1280, 1024);

}

/**

* 重寫 paint 繪圖方法

*/

public void paint(Graphics g) {

super.paint(g);

// 轉換為 Graphics2D

Graphics2D g2d = (Graphics2D) g;

// 獲取緩存圖形 Graphics2D

Graphics2D bg = image.createGraphics();

// 圖形抗鋸齒

bg.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);

// 設置繪圖顏色

bg.setColor(color);

// 設置畫筆樣式

bg.setStroke(stroke);

// 畫線,從上一個點到新的點

bg.drawLine(oldMouseX, oldMouseY, mouseX, mouseY);

// 將緩存中的圖形畫到畫板上

g2d.drawImage(image, 0, 0, this);

}

/**

* 重寫 update 方法

*/

public void update(Graphics g) {

this.paint(g);

}

/**

* @return stroke

*/

public BasicStroke getStroke() {

return stroke;

}

/**

* @param stroke 要設置的 stroke

*/

public void setStroke(BasicStroke stroke) {

this.stroke = stroke;

}

/**

* 設置畫筆粗細

* @param width

*/

public void setStroke(float width) {

this.stroke = new BasicStroke(width, stroke.getEndCap(), stroke.getLineJoin());

}

/**

* 設置畫筆端點的裝飾

* @param cap 參考 java.awt.BasicStroke 類靜態欄位

*/

public void setStroke(int cap) {

this.stroke = new BasicStroke(stroke.getLineWidth(), cap, stroke.getLineJoin());

}

/**

* @return color

*/

public Color getColor() {

return color;

}

/**

* @param color 要設置的 color

*/

public void setColor(Color color) {

this.color = color;

}

public void mouseClicked(MouseEvent mouseEvent) {

}

/**

* 滑鼠按下

*/

public void mousePressed(MouseEvent mouseEvent) {

this.oldMouseX = this.mouseX = mouseEvent.getX();

this.oldMouseY = this.mouseY = mouseEvent.getY();

repaint();

}

public void mouseReleased(MouseEvent mouseEvent) {

}

/**

* 滑鼠進入棋盤

*/

public void mouseEntered(MouseEvent mouseEvent) {

this.setCursor(new Cursor(Cursor.CROSSHAIR_CURSOR));

}

/**

* 滑鼠退出棋盤

*/

public void mouseExited(MouseEvent mouseEvent) {

this.setCursor(new Cursor(Cursor.DEFAULT_CURSOR));

}

/**

* 滑鼠拖動

*/

public void mouseDragged(MouseEvent mouseEvent) {

this.oldMouseX = this.mouseX;

this.oldMouseY = this.mouseY;

this.mouseX = mouseEvent.getX();

this.mouseY = mouseEvent.getY();

repaint();

}

public void mouseMoved(MouseEvent mouseEvent) {

}

}

原創文章,作者:B4NCG,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/130775.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
B4NCG的頭像B4NCG
上一篇 2024-10-03 23:27
下一篇 2024-10-03 23:27

相關推薦

  • Java JsonPath 效率優化指南

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

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

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

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

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

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

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

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

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

    編程 2025-04-29
  • g3log源代碼學習

    g3log是一個高性能C++日誌庫,其代碼十分精簡和可讀性強,本文將從3個方面詳細介紹g3log源代碼學習。 一、g3log源代碼整體架構 g3log的整體架構十分清晰,其中有3個…

    編程 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

發表回復

登錄後才能評論