我试图创建一个具有椭圆形图像的JLabel,如下所示。
我的代码如下:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Image;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.SwingUtilities;
public final class RoundedButtonDemo {
private static Image bi;
public static void main(String[] args) {
try {
loadImage();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
createAndShowGUI();
}
});
} catch (IOException e) {
// handle exception
}
}
private static void loadImage() throws IOException {
int newWidth = 80;
int newHeight = 40;
bi = ImageIO.read(RoundedButtonDemo.class.getResource("/resources/login.png"));
bi = bi.getScaledInstance(newWidth, newHeight, Image.SCALE_DEFAULT);
}
private static void createAndShowGUI() {
final JFrame frame = new JFrame();
frame.setSize(400, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JLabel label = new JLabel();
label.setSize(new Dimension(5, 5));
label.setIcon(new ImageIcon(bi));
label.setText("Hello World");
label.setHorizontalTextPosition(JLabel.CENTER);
// label.setBorder(BorderFactory.createLineBorder(Color.BLACK));
label.addMouseListener(new MouseListener() {
private int count = 0;
@Override
public void mouseClicked(MouseEvent e) {
if (e.getSource() == label) {
if (count % 2 == 0) {
label.setText("Bye");
} else {
label.setText("Hello World");
}
count++;
}
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
});
frame.add(label);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
}
这段代码创建一个jlabel
包含上面的图像。每次单击按钮时,JLabel
的文本应该根据添加到JLabel
的mouselistener
中的JLabel
替换。
我想要实现的目标是:一个圆角按钮,它响应mouselistener
,只要在其表面的任何地方单击它。
我试过你的密码了。之所以出现这种行为,是因为jlabel
实际上填满了整个框架。您需要为您的框架设置布局;类似于这样:
// ...
frame.setSize(400, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLayout(new FlowLayout()); // <-- you need this
final JLabel label = new JLabel();
label.setPreferredSize(new Dimension(80, 40)); // <-- also this
label.setIcon(new ImageIcon(bi));
label.setText("Hello World");
// ...
FlowLayout
是最简单的布局管理器之一,其中有很多。您可以在下面阅读有关它们的内容:https://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html
希望这能有所帮助。
// label.setBorder(BorderFactory.createLineBorder(Color.BLACK));
我想将方形图像转换为圆形图像,但当我应用“边框半径:50px”时,它给了我椭圆形的形状。我尝试了很多东西,但都不起作用。任何帮助都将不胜感激。这是我的超文本标记语言代码- <代码> 这是我的CSS代码- 这是我的图片在网站上的样子。我希望它们有一个圆形。
本文向大家介绍怎样在页面上实现一个圆形的可点击区域?相关面试题,主要包含被问及怎样在页面上实现一个圆形的可点击区域?时的应答技巧和注意事项,需要的朋友参考一下 这个问题也可以理解为做一个圆。方案为两种,真的圆和模拟圆 map+area , demo 圆角属性(楼上的2.3.4) 判断圆心点和单击点的距离是不是在半径中。(楼上1方案) svg圆
如何创建类似于< code > floating action button 的东西?
我正在使用以下代码创建一个围绕JPanel的边框: 创建一个固定的边框不应该这么难,我做错了什么?
问题内容: 我正在使用和在CSS中创建一个半透明的圆圈。 在这个圆的周围,我希望有另一个完全透明的边界(例如10个像素),而又想有另一个半透明的边界(10个像素)。 这是我创建圈子的方式: 我需要怎么做才能在现有边界周围创建另一个边界,然后再创建另一个边界? 问题答案: 您可以使用简单的边框并将背景裁剪到,以在填充区域中创建透明部分: 您也可以考虑 您可以轻松缩放到任意数量的边界:
主要活动。xml 这是一张圆形的照片。xml: 我尝试了一些阴影效果的代码,但它不起作用。