- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我是 Java 的新手,我正在尝试制作一个您无法点击按钮的应用程序。当鼠标悬停在按钮上时,按钮位置会随机变化。首先我打开了一个 JForm,我没有手动创建按钮。
我正在处理 mouseEntered
事件,这些是我的代码;
int x = 100, y = 100;
Random r1 = new Random();
Random r2 = new Random();
private void jButton1MouseExited(java.awt.event.MouseEvent evt) {
jButton1.setLocation(x, y);
}
private void jButton1MouseEntered(java.awt.event.MouseEvent evt) {
x = r1.nextInt(300);
y = r2.nextInt(300);
jButton1.setLocation(x, y);
}
这是我程序中的所有代码。另一部分是 InitComponents。我刚刚尝试过不使用随机。问题在这里,代码更改了位置。但是,当我移动鼠标时,按钮位置变为旧位置(我的意思是它返回默认位置)。我认为它与 Java 的布局有关。我也将按钮的位置设置为 300,400,但仍然是同样的问题。当光标移动时,按钮仍会返回旧位置,这就是为什么我认为我可以说我的问题不在于随机创建新位置。乙那么你有什么想法吗?
编辑---
感谢您回答@Mohith P。我开设了一个类并编写了您给我的代码。它在这里工作的代码;
public class Unclickable extends JFrame implements ActionListener {
JFrame frm;
JButton btn;
JPanel pnl;
int x = 100;
int y = 100;
Random rnd = new Random();
public Unclickable() {
frm = new JFrame();
btn = new JButton("A-A");
pnl = new JPanel();
btn.setLocation(x, y);
btn.setPreferredSize(new Dimension(50, 50));
pnl.setSize(400, 400);
pnl.setLocation(100, 100);
pnl.add(btn);
btn.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseEntered(java.awt.event.MouseEvent evt) {
x = rnd.nextInt(300);
y = rnd.nextInt(300);
btn.setLocation(x, y);
}
public void mouseExited(java.awt.event.MouseEvent evt) {
btn.setLocation(x, y);
}
});
frm.setSize(500, 500);
frm.add(pnl);
frm.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent ae) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public static void main(String[] args) {
Unclickable a = new Unclickable();
}
如前所述,它可以工作,但如果使用“JFrame Form”,它仍然无法工作。我还是不明白为什么。可能是针对 InitCompenent 中的这些代码
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGap(22, 22, 22)
.addComponent(jLabel1)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jLabel2)
.addGap(99, 99, 99)
.addComponent(jButton1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(109, Short.MAX_VALUE))
);
我尝试设置标签的位置,没有问题,但按钮是个大问题。可以关于 grouplayout(JButton 布局类型)吗?最后我使用面板,我在面板内部添加了按钮,仍然是一样的:/
最终编辑
我解决了这个问题。问题真的很有趣 :) 我写了一个代码,它给了我按钮的位置。
private void formMouseMoved(java.awt.event.MouseEvent evt) {
jLabel1.setText(jButton1.getLocation().x + "");
jLabel2.setText(jButton1.getLocation().y + "");
}
由于该代码,我无法更改按钮的位置。我写了它,我想在它改变时按钮位置。就像我说的,这对我来说很有趣 :)
最佳答案
在您的代码中,您尝试根据随机生成的值设置按钮位置,因此按钮位置随机变化。您不使用随机值,而是使用一些固定值作为按钮位置。同样在上面的代码中,当鼠标进入事件被调用时,它会随机生成位置值并更改位置。
试试这段代码,
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.Random;
import java.lang.Math.*;
class Tst extends JFrame implements ActionListener
{
JFrame f1;
JPanel p1;
JButton b1;
int x=100,y=100;
Random rand = new Random();
Tst()
{
f1=new JFrame("Sample");
p1=new JPanel();
b1=new JButton("B1");
b1.setLocation(x, y);
b1.setPreferredSize(new Dimension(100, 50));
p1.setSize(500,500);
p1.setLocation(100,100);
p1.add(b1);
//b1.addActionListener(this);
b1.addMouseListener(new java.awt.event.MouseAdapter()
{
public void mouseEntered(java.awt.event.MouseEvent evt)
{
//jButton1.setBackground(Color.GREEN);
x=rand.nextInt(10);
y=rand.nextInt(10);
b1.setLocation(x, y);
}
public void mouseExited(java.awt.event.MouseEvent evt)
{
//jButton1.setBackground(UIManager.getColor("control"));
b1.setLocation(x, y);
}
});
f1.setSize(500,500);
f1.setLayout(new GridLayout(1,1));
f1.add(p1);
f1.setVisible(true);
f1.addWindowListener (new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
f1.setVisible(false);
System.exit(0);
}
});
}
public void actionPerformed(ActionEvent ae)
{
if(ae.getSource()==b1)
{
}
}
public static void main(String args[])
{
Tst t=new Tst();
}
}
关于java - 是否有可能在java中永久设置按钮的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35407194/
这个问题已经有答案了: Is there any way to accept only numeric values in a JTextField? (20 个回答) It's possible i
我使用戴尔 XPS M1710。笔记本电脑的盖子、侧面扬声器和前置扬声器都有灯(3 组灯可以单独调节)和鼠标垫下方的灯。在 BIOS 中,我可以更改这些灯的颜色,至少是每个组。另外,我可以在鼠标垫下打
我知道我可以使用 在 iOS 5 中打开设置应用 [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"prefs://"
我有一个 Django 应用程序,我正在尝试为其设置文档。目录结构如下: - doc - project | - manage.py 我已经设置了路径以便 Sphinx 可以看到东西,但是当我尝试使用
我正在使用 768mb ram 运行 centos 5.5。我一直在日志中获取 server reached MaxClients setting, consider raising the MaxC
我在具有以下配置的服务器内运行了 Drupal 安装: StartServers 5 MinSpareServers 5 MaxSpareServers 15 MaxClien
是否可以使用 Microsoft.Web.Administration 包为给定的 location 配置 asp 设置? 我想以编程方式将以下部分添加到本地 IIS applicationHost.
我一直在阅读为 kube-proxy 提供参数的文档,但没有解释应该如何使用这些参数。我使用 az aks create 创建我的集群使用 azure-cli 程序,然后我获得凭据并使用 kubect
我想知道与在 PHP 中使用 setcookie() 函数相比,在客户端通过 JavaScript 设置一些 cookie 是否有任何明显的优势?我能想到的唯一原因是减少一些网络流量(第一次)。但不是
我有一个按钮可以将 body class 设置为 .blackout 我正在使用 js-cookie设置cookie,下面的代码与我的按钮相关联。 $('#boToggle').on('click'
我有一堆自定义的 HTML div。我将其中的 3 存储在具有 slide 类的 div 中。然后,我使用该幻灯片类调用 slick 函数并应用如下设置: $('.slide').slick({
我正在创建一个应该在 Windows 8(桌面)上运行的应用 我需要: 允许用户使用我的应用启动“文件历史记录”。我需要找到打开“文件历史记录”的命令行。 我需要能够显示“文件历史记录”的当前设置。
我刚买了一台新的 MacBook Pro,并尝试在系统中设置 RVM。我安装了 RVM 并将默认设置为 ➜ rvm list default Default Ruby (for new shells)
由于有关 Firestore 中时间戳行为即将发生变化的警告,我正在尝试更改我的应用的初始化代码。 The behavior for Date objects stored in Firestore
在 ICS 中,网络 -> 数据使用设置屏幕中现在有“限制后台数据”设置。 有没有办法以编程方式为我的应用程序设置“限制后台数据”? 或 有没有办法为我的应用程序调出具有选项的“数据使用”设置? 最佳
我正在尝试使用 NextJS 应用程序设置 Jest,目前在 jest.config.js : module.exports = { testPathIgnorePatterns: ["/.n
我最近升级到 FlashDevelop 4,这当然已经将我之前的所有设置恢复到原来的状态。 我遇到的问题是我无法在新设置窗口的哪个位置找到关闭它在方括号、大括号等之前插入的自动空格的选项。 即它会自动
有没有办法以编程方式访问 iPhone/iPod touch 设置? 谢谢。比兰奇 最佳答案 大多数用户设置可以通过读取存储在 /User/Library/Preferences/ 中的属性列表来访问
删除某些值时,我需要选择哪些设置来维护有序队列。我创建了带有自动增量和主键的 id 的表。当我第一次插入值时,没问题。就像 1,2,3,4,5... 当删除某些值时,顺序会发生变化,例如 1,5,3.
我正在尝试设置示例 Symfony2 项目,如此处所示 http://symfony.com/doc/current/quick_tour/the_big_picture.html 在访问 confi
我是一名优秀的程序员,十分优秀!