「java自定义按钮」java设置按钮
今天给各位分享java自定义按钮的知识,其中也会对java设置按钮进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、JAVA自定义一个Button,重写了onTouchEvent 方法,出现的问题。
- 2、JAVA中怎么自定义按钮的形状?
- 3、java语言自定义一个按钮鼠标移入和移出,点击左键时能改变外观
- 4、Java 改变按钮外观
- 5、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设置按钮的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。