Tag: 限制

通用限制地狱:绑定不匹配

我正在开发一个具有广泛的genericsinheritance和依赖树的项目。 转到编辑以查看更好的示例。 基础知识看起来像这样: class A { … } class B { … } class C extends B { … } class D extends A { … } class StringMap { HashMap _elements; … } 所以现在我要编写一个包含特定StringMap类型的类。 class X { StringMap<D> _thing = new StringMap<D>; … } 到目前为止,一切正常。 D实际上是一个非常长的名称,并且特定组合将在代码的其他部分中非常频繁地出现,因此我决定使用特定组合的类,以便更清楚并且具有更短的名称。 class DC extends D { } //and go […]

Enum遵循静态初始化程序的65535字节限制…最好的做法是什么?

我已经开始了一个相当大的所谓的Descriptors枚举,我想在我的模型中用作参考列表。 但是现在我第一次遇到编译器/ VM限制,所以我正在寻找最好的解决方案来处理这个问题。 这是我的错误: 静态初始化程序的代码超过65535字节限制 很明显这是从哪里来的 – 我的Enum只有很多元素。 但是我需要那些元素 – 没有办法减少那个元素。 最初,我计划使用单个枚举,因为我想确保枚举中的所有元素都是唯一的。 它用于Hibernate持久化上下文,其中对Enum的引用在数据库中存储为String值。 所以这必须是独一无二的! 我的Enum的内容可以分成几组属于一起的元素。 但拆分Enum会消除我在编译期间获得的独特安全性。 或者可以通过某种方式实现多个枚举? 我目前唯一的想法是定义一些名为Descriptor的接口,并编写几个实现它的Enum。 这样我希望能够使用Hibernate Enum映射,就好像它是单个枚举一样。 但我甚至不确定这是否有效。 我放松了独特的安全。 任何想法如何处理这种情况?

使用Thread.sleep()限制Libgdx游戏中的FPS不起作用

我正在为libgdx开发一款针对android的小游戏,并希望将fps限制为30以节省电池。 问题是它不起作用。 fps从60下降到56。 以下是代码的一部分:(它位于渲染部分的末尾) System.out.print(“\nFPS: ” + Gdx.graphics.getFramesPerSecond() + “\n”); if(Gdx.graphics.getDeltaTime() < 1f/30f) { System.out.print("DeltaTime: " + Gdx.graphics.getDeltaTime() + " s\n"); float sleep = (1f/30f-Gdx.graphics.getDeltaTime())*1000; System.out.print("sleep: " + sleep + " ms\n"); try { Thread.sleep((long) sleep); } catch (InterruptedException e) { System.out.print("Error…"); e.printStackTrace(); } } 这是输出: FPS: 56 DeltaTime: 0.014401722 s sleep: 18.931612 ms FPS: […]

将日期上限和下限设置为日期选择器对话框

我创建了一个活动,其中有一个用于插入用户出生日期的字段。 我使用了日期选择器来实现这一目标。 这是我正在做的源代码: // onclick dob edittext open date picker dialog dob.setFocusableInTouchMode(false); dob.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //open date picker showDialog(DATE_DIALOG_ID); } }); //======================For picking birth day========================== // Creating dialog @Override protected Dialog onCreateDialog(int id) { Calendar c = Calendar.getInstance(); int cyear = c.get(Calendar.YEAR); int cmonth = c.get(Calendar.MONTH); int cday = […]

如何实现Java限制的下载速率?

我将在Java中实现一个(简单的)下载器应用程序作为个人练习。 它将在不同的线程中运行多个作业,这样我将在执行期间始终同时下载几个文件。 我希望能够定义所有下载作业之间共享的下载速率限制,但即使是单个下载任务,我也不知道该怎么做。 我该怎么做呢? 我应该尝试实施哪些解决方案? 谢谢。

如何限制Java中JPasswordField的位数?

我有我的Java代码在Eclipse中工作,但我需要添加一些function。 首先,如何限制用户可以输入的位数? 实际上我有一个JPasswordField让一个人输入一个pin代码,我希望这个JPasswordField最多限制为4位数。 那么如何在输入4位数字后立即停止输入? 然后,我如何玩JPassword框的大小? 有没有办法像JTextField一样修改它? 因为我的行“p1.setPreferredSize(new Dimension(100,25));” 似乎并没有真正让我修改盒子的大小。 如您所见,JPassworldField框具有默认大小,我无法弄清楚如何轻松修改。 这是我的代码: package codePin; import java.io.*; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Main extends JFrame { private static final long serialVersionUID = 1L; private JPanel container = new JPanel(); private JPasswordField p1 = new JPasswordField(4); private JLabel label = new […]

JTextField / JTextComponent中的选择有限?

考虑一个JFormattedTextField(或任何真正的JTextComponent),其中有一个前缀和一个后缀显示在该字段的实际“文本”周围。 例如,double 3.5将是字符串(通过格式化)“3.50”,其前面是前缀“$”,后缀“”,显示文本为“$ 3.50”。 显然,这很容易做到。 但是,仍然允许用户选择前缀/后缀中的文本,因此可以想象删除部分或全部前缀/后缀。 我希望限制用户,使得根本不能选择前缀/后缀(仍然是文本字段的一部分,因此没有JLabel)。 我几乎可以使用CaretListener(或通过覆盖setCaretPosition / moveCaretPosition)来完成此操作,这可以防止Ca选择整个字段,并且它可以防止使用箭头键移动到前缀/后缀中。 但是,鼠标拖动和移动箭头键仍然允许选择移动到这些受限区域。 有任何想法吗?

如何只允许在jTextField中引入数字?

我试图使用此处显示的示例,但java显示错误消息 “AttributeSet无法解析为类型” 这就是为什么我试图使用另一种只允许数字的方法: txtUsername.addKeyListener(new MyKeyListener()); public class MyKeyListener extends KeyAdapter{ public void keyPressed(KeyEvent ke){ System.out.println(“Key pressed code = “+ke.getKeyCode()); if (ke.getKeyCode()>=48 && ke.getKeyCode()<=57) return true; else return false; } } 但是当然它没有用,因为keyPressed方法是void 。 那么,为了在textfield中只打印数字怎么办?