Tag: java

设置JFrame位置的最佳做法

我有一个(有点哲学)问题相对于Swing,或者一般的GUI编程。 是否有关于在何处找到应用程序中使用的JFrame实例的最佳实践? 第一帧和主框架应该放在哪里? 总是在中心( setLocationRelativeTo(null) )? 儿童JFrame应该放在哪里? 相对于它的父JFrame ,屏幕的中心,我们想要的任何地方? 我一直认为有一些最好的做法,有点像这样的“GUI圣经”,我错了,我应该(喘息)随意决定做什么?

静态与实例变量:差异?

静态变量和实例变量之间有什么区别。 以下句子是我无法得到的: 在某些情况下,类的所有对象只应共享特定变量的一个副本 – 这里使用静态变量。 静态变量表示类范围信息。类的所有对象共享相同的数据。 我认为实例变量是使用类广泛的,而静态变量只在自己的方法中有范围?

Java 8嵌套(多级)组

我有几个类,如下 class Pojo { List items; } class Item { T key1; List subItems; } class SubItem { V key2; Object otherAttribute1; } 我想基于key1聚合项目,对于每个聚合,子项应由key2按以下方式聚合: Map<T, Map<V, List> 如何使用Java 8 Collectors.groupingBy嵌套? 我正在尝试一些东西并且中途停留 pojo.getItems() .stream() .collect( Collectors.groupingBy(Item::getKey1, /* How to group by here SubItem::getKey2*/) ); 注意:这与级联groupingBy ,后者基于此处讨论的同一对象中的字段进行多级聚合

从JTextArea获取密钥

我只想做,如果我在JtextArea.automatically’}’中按'{‘这个键,那么这也将是打印的。 if(evt.KEY_PRESSED == ‘{‘) System.out.print(“}”); 这没关系吗?

用于拖放的JLabel鼠标事件

我希望通过覆盖它上面的鼠标事件来启用JLabel上的拖放function,但是当我在mousePressed事件中定义拖放时,mouseReleased不会对该JLabel生效。 难道我做错了什么 ? Thumbnails[I_Loop].setText(“1”); Thumbnails[I_Loop].setTransferHandler(new TransferHandler(“text”)); Thumbnails[I_Loop].addMouseListener( new MouseAdapter() { public void mouseReleased(MouseEvent me) { System.out.println(“here mouse released”); } public void mousePressed(MouseEvent me) { System.out.println(“here mouse pressed”); JComponent comp = (JComponent) me.getSource(); TransferHandler handler = comp.getTransferHandler(); handler.exportAsDrag(comp, me, TransferHandler.COPY); }); *缩略图是JLabel的数组 在运行程序时,拖放工作但是“此处鼠标已释放”语句不会被打印。 但是,当我从mousePressed()方法中删除负责DND的代码时,将打印“此处鼠标已释放”。 这段代码有什么问题?

JLabel – 将更长的文本显示为多行?

所以说我想要在JLabel显示一条非常长的行。 我该怎么做? 目前,更长的线路出现了: 我必须调整窗口大小以查看完整的文本。 当文本几乎达到我的JFrame的宽度时,我怎样才能使它有换行符? 我不确定这里是否需要任何代码才能回答这个问题,但仍然: 我的框架属性: frame = new JFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(new Dimension(450, 400)); frame.setLocation(new Point(400, 300)); frame.setLayout(new BorderLayout()); 我要修改的标签: question = new JLabel(“Question:”); question.setFont(new Font(“Serif”, Font.BOLD, 15)); question.setHorizontalAlignment(JLabel.CENTER); 编辑:更多细节: 我正在从文件中读取行,然后显示它们。 线条的大小不固定,所以我不知道放在哪里。 编辑2: 我最终使用了JTextArea 。 private JTextArea textAreaProperties(JTextArea textArea) { textArea.setEditable(false); textArea.setCursor(null); textArea.setOpaque(false); textArea.setFocusable(false); textArea.setLineWrap(true); textArea.setWrapStyleWord(true); return textArea; }

正则表达式:如何逃避反斜杠和特殊字符?

有没有办法逃避(或保护)正则表达式中的特殊字符? 我想要做的是创建一个简单的正则表达式测试器: import java.util.regex.*; class TestRegex { public static void main( String … args ) { System.out.printf(“%s ~= %s ? %s %n” , args[0], args[1], Pattern.matches( args[0], args[1] ) ); } } 在将模式插入程序之前测试我的模式非常有用: $java TestRegex “\d” 1 \d ~= 1 ? true $java TestRegex “\d” 12 \d ~= 12 ? false $java TestRegex “\d+” 12 […]

三元运算符 – JAVA

有可能改变这个: if(String!= null) { callFunction(parameters); } else { // Intentionally left blank } ……给三元运营商?

自定义按钮不能在mac上工作(ButtonUI)

我有一个应用程序,它使用遍布文本和图标的自定义按钮。 适用于Windows和Linux,但现在OSX用户抱怨。 文本不会显示在Mac上,只是’…’。 代码看起来很简单,但是对于mac来说我很无能为力。 我怎样才能解决这个问题? 测试用例: package example.swingx; import example.utils.ResourceLoader; import com.xduke.xlayouts.XTableLayout; import javax.swing.*; import javax.swing.plaf.ComponentUI; import java.awt.*; import java.awt.event.ActionEvent; public class SmallButton extends JButton { private static ComponentUI ui = new SmallButtonUI(); public SmallButton() { super(); /* final RepaintManager repaintManager = RepaintManager.currentManager(this); repaintManager.setDoubleBufferingEnabled(false); setDebugGraphicsOptions(DebugGraphics.FLASH_OPTION);*/ } public SmallButton(AbstractAction action) { super(action); } public SmallButton(String text) […]

测试浮点相等。 (FE_FLOATING_POINT_EQUALITY)

我在ANT脚本中使用了一个findbugs,我无法弄清楚如何解决我的两个错误。 我已阅读文档,但不明白。 以下是我的错误以及与之相关的代码: 错误1:测试浮点相等性。 (FE_FLOATING_POINT_EQUALITY) private boolean equals(final Quantity other) { return this.mAmount == convertedAmount(other); } 错误2:EQ_COMPARETO_USE_OBJECT_EQUALS public final int compareTo(final Object other) { return this.description().compareTo(((Decision) other).description()); } 我已经阅读了ComparesTo问题的文档 强烈建议,但并非严格要求(x.compareTo(y)== 0)==(x.equals(y))。 一般来说,任何实现Comparable接口并且违反此条件的类都应该清楚地表明这一事实。 推荐的语言是“注意:此类具有与equals不一致的自然顺序。” 以及有关浮点平等的文档 此操作比较两个浮点值是否相等。 由于浮点计算可能涉及舍入,因此计算的浮点值和双精度值可能不准确。 对于必须精确的值,例如货币值,请考虑使用固定精度类型,例如BigDecimal。 对于不必精确的值,请考虑比较某些范围内的相等性,例如:if(Math.abs(x-y)<.0000001)。 请参阅Java语言规范,第4.2.4节。 我不明白。 有人可以帮忙吗?