「java自定义按钮」java设置按钮

博主:adminadmin 2023-01-25 16:24:10 459

今天给各位分享java自定义按钮的知识,其中也会对java设置按钮进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

JAVA自定义一个Button,重写了onTouchEvent 方法,出现的问题。

因为你重写了ontouchevent,而click或者longclick都是根据touch的motion来判断的

所以longclick不生效.

基本思路:

1,自行判断,例如action down开始计时,当action up到来时,如果持续超过一定时间(比如1秒),并且move的范围小于一定阈值,认定为一次long click

2,使用gesture detector类判断手势.

JAVA中怎么自定义按钮的形状?

貌似这个是不可以自定义的

JAVA挎平台

可以去别的操作系统运行

按纽就改变了

java语言自定义一个按钮鼠标移入和移出,点击左键时能改变外观

import java.awt.*;

import javax.swing.*;

public class TextDemo

{

JFrame f;

Container c;

JButton b;

static JLabel l;

public TextDemo()

{

f=new JFrame();

c=f.getContentPane();

c.setLayout(new FlowLayout());

b=new JButton("OKOK");

b.addMouseListener(new MouseService());

l=new JLabel("");

Font font=new Font("楷体",Font.BOLD,16);

l.setFont(font);

l.setForeground(Color.red);

c.add(b);

c.add(l);

f.setSize(400,400);

f.setVisible(true);

}

public static void main(String args[])

{

new TextDemo();

}

}

import java.awt.event.*;

public class MouseService implements MouseListener

{

//鼠标的单击事件

public void mouseClicked(MouseEvent m)

{

TextDemo.l.setText("鼠标被单击了一下");

if(m.isMetaDown())

{

System.out.println("右键被点击");

}

else if(m.isAltDown())

{

System.out.println("中键被点击");

}

else

{

System.out.println("左键被点击");

}

}

//鼠标光标进入组件时产生的事件

public void mouseEntered(MouseEvent m)

{

TextDemo.l.setText("鼠标的光标进入了按钮组件");

}

//鼠标光标离开组件时产生的事件

public void mouseExited(MouseEvent m)

{

TextDemo.l.setText("鼠标的光标离开按钮组件");

}

//鼠标按键按下事件

public void mousePressed(MouseEvent m)

{

TextDemo.l.setText("鼠标的按键被按下");

}

//鼠标按键被释放时的事件

public void mouseReleased(MouseEvent m)

{

TextDemo.l.setText("鼠标的按键被释放");

}

}

Java 改变按钮外观

通常swing自定义组件继承javax.swing.JComponent并重写protected void paintComponent(Graphics g)方法实现自定义绘制。 重写paintComponent方法时通常要先去掉super.paintComponent(g),因为父方法调用会绘制背景色。不妨先看一下源代码中的调用过程。

在JComponent.java中paintComponent(Graphics g)方法定义如下:

protected void paintComponent(Graphics g) {

if (ui != null) {

Graphics scratchGraphics = (g == null) ? null : g.create();

try {

ui.update(scratchGraphics, this);

}

finally {

scratchGraphics.dispose();

}

}

}

其中ui的声明如下

protected transient ComponentUI ui;

然后转向ComponentUI的update(Graphics g, JComponent c)方法:

public void update(Graphics g, JComponent c) {

if (c.isOpaque()) {

g.setColor(c.getBackground());

g.fillRect(0, 0, c.getWidth(),c.getHeight());

}

paint(g, c);

}

可见如果发现组件是非透明的,就绘制背景,可以看出swing组件的setBackground方法如何绘制背景的。

一般简单的自定义组件,你可以只通过重写paintComponent方法来实现绘制,对于一般的组件这已经足够。对于自定义按钮一般的原则是准备4张背景图对应上述4种状态,这4种状态都可通过鼠标监听来感知,当状态改变时,调用repaint()使Button重绘。除了背景,按钮文本、图标等的改变一样也必须调用repaint()来刷新。

然后重要的一点是你必须重写public Dimension getPreferredSize()来获得按钮的最佳尺寸。getPreferredSize方法对于布局管理器来说至关重要,布局管理器会通过getPreferredSize的判断组件的最佳大小,并进行布局。而对于本范例而言,getPreferredSize的大小只和背景图片大小有关。

对于业务,尽量做到前台界面与后来业务分离。你可以自定义按钮动作监听器来实现,本例是沿用swing的Action实现,当鼠标抬起时,构造一个ActionEvent对象,然后交给Action成员的actionPerformed(ActionEvent e)处理。

java 自定义按钮关闭窗口,不能实现

很久没写过swing了,印象中应该是楼主的写法,不过实在不行的话,可以考虑使用System.exit(0);来处理关闭事件。

关于java自定义按钮和java设置按钮的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。