小编Avr*_*gon的帖子

9
推荐指数
1
解决办法
6485
查看次数

记住摆动的窗口位置

我有一个非常大的摇摆应用程序,我想让它记住所有窗口,jframes等的大小.因此,如果用户调整窗口他喜欢的方式,下次窗口看起来完全相同的方式.

我有更好的选择来解决它,但手动在首选项中写入每个窗口的位置/大小?有没有方便的方法来存储JTable中的列顺序?可能是一些框架?只是不想写样板文件.

遗憾的是,整个大应用程序的序列化不是一种选择.

java user-interface swing persistence

9
推荐指数
3
解决办法
5008
查看次数

Eclipse中的泛型类型的自动完成

"有效Java"中提到了"通过接口引用对象"是一种很好的做法.所以例如我更喜欢

List<String> al = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)

过度

ArrayList<String> al = new ArrayList<String>();
Run Code Online (Sandbox Code Playgroud)

在我的代码中.一件令人讨厌的事情是,如果我输入ArrayList<String> al = new然后按下Eclipse中的Ctrl + Space,我会得到一个ArrayList<String>()propostal.但是如果我输入List al = new然后点击Ctrl + Space我将只得到propostal来定义匿名内部类,但不是propostal,例如new ArrayList<String>(),99%的情况,或者例如new Vector<String>().

问题:有没有办法将子类作为泛型类型的propostals?

java eclipse generics autocomplete effective-java

8
推荐指数
1
解决办法
2136
查看次数

仅在 beans.xml 中定义附加占位符/属性

我有一个字符串列表,我想在 beans.xml 中定义它。

<util:list id="myFractions" value-type="java.lang.String">
    <value>#{ T(com.myapp.longname.verylong.WelcomeController).RED_FRACTION }</value>
    <value>#{ T(com.myapp.longname.verylong.WelcomeController).BLUE_FRACTION }</value>
    <value>#{ T(${my.prefix}).GREEN_FRACTION }</value>
</util:list>
Run Code Online (Sandbox Code Playgroud)

它工作正常,但每次我都需要编写完整的限定常量名称com.myapp.longname.verylong.WelcomeController。我只想写一次。我发现的一个解决方案是将其替换为类似的属性my.prefix,这样我就可以只写我的短前缀而不是真正的完整路径。但随后我需要用只需要一次的属性来污染全局“命名空间”。我想仅为该列表或至少仅为该 beans.xml 文件定义一个占位符。我已经尝试直接在 beans.xml 中定义一个属性并且PropertyPlaceholderConfigurer它有效,但是我所有的初始属性都不再可用。

那么如何避免com.myapp.longname.verylong.WelcomeController每次都在列表中作为前缀写入并且只定义一次呢?理想情况下是这样的

<util:list id="myFractions" value-type="java.lang.String">
    <define-local-placeholder name="my.prefix" value="com.myapp.longname.verylong.WelcomeController" />
    <value>#{ T(${my.prefix}).RED_FRACTION }</value>
    <value>#{ T(${my.prefix}).BLUE_FRACTION }</value>
    <value>#{ T(${my.prefix}).GREEN_FRACTION }</value>
</util:list>
Run Code Online (Sandbox Code Playgroud)

java spring spring-boot

6
推荐指数
1
解决办法
616
查看次数

强制MigLayout像GridBagLayout一样缩小隐藏对象

我想,以取代GridBagLayoutMigLayout.问题是,如果我调用obj.setVisible(false)某个对象GridBaglayout,布局会缩小.但MigLayout它仍然隐藏着.你知道某种MigLayout表演方式GridBagLayout吗?

java layout user-interface swing miglayout

5
推荐指数
1
解决办法
889
查看次数

我应该在SwingWorker.doInBackground()中使用SwingUtilities.invokeLater()吗?

从swing工作者与EDT交互的常用方法是使用get()方法.但我有一个很长的任务和代码,如下所示:

public Void doInBackground() {
    for(Object o : objects) {
         doSomething();
         MyGlobalGUIConsole.addMessage("Done for " + o);
    }
}
Run Code Online (Sandbox Code Playgroud)

在大多数tutotials中,建议使用返回值从SwingWorker返回到EDT,但我可以:

public Void doInBackground() {
    for(Object o : objects) {
        doSomething();
        SwingUtilities.invokeLater(new Runnable() {        
            @Override                                      
            public void run() {                            
                MyGlobalGUIConsole.addMessage("Done for " + o);
            }                                              
        });                                                
    }
}
Run Code Online (Sandbox Code Playgroud)

java swing swingworker invokelater event-dispatch-thread

5
推荐指数
1
解决办法
1578
查看次数

短路运营商是否总是从左到右执行?

所以如果代码:

if(f() && false) {
    // never happens
}
Run Code Online (Sandbox Code Playgroud)

我能否始终确定f()将被调用并且永远不会被编译器"优化掉"?

java short-circuiting

4
推荐指数
1
解决办法
394
查看次数

什么是Json.NET Mono程序集参考?

我正在尝试编译此Json.NET代码:

using Newtonsoft.Json;
...
MyDesc d = JsonConvert.DeserializeObject<MyDesc>(jsonInput);
...
Run Code Online (Sandbox Code Playgroud)

通过mono使用此命令(在ubuntu上):

$ mcs Main.cs -lib:/home/username/JsonNET/Net40/Newtonsoft.Json.dll
Run Code Online (Sandbox Code Playgroud)

但是我收到“没有程序集引用”的错误:

error CS0246: The type or namespace name `Newtonsoft' could not be found.
Are you missing an assembly reference
Run Code Online (Sandbox Code Playgroud)

正确的Json.NET Mono组装参考是什么?

(-lib选项对此很合适,但是它不起作用-lib:PATH1[,PATHn] Specifies the location of referenced assemblies

mono json.net

4
推荐指数
1
解决办法
2304
查看次数

处理JPopupMenu关闭

我想在屏幕上突出显示一些元素,当选择PopupMenu中的一个JMenuItem时(鼠标悬停).所以我在我的JMenuItem上使用MouseListener

        @Override
        public void mouseEntered(MouseEvent e) {
            highlightOn();
        }

        @Override
        public void mouseExited(MouseEvent e) {
            highlightOff();
        }
Run Code Online (Sandbox Code Playgroud)

它工作正常,但如果我按Esc弹出菜单将关闭,而不清理highligt.我如何拦截JPopupMenu的关闭来处理这个问题?

java swing jpopupmenu jmenuitem jpopup

2
推荐指数
1
解决办法
2358
查看次数

一种扩展java语法的简单方法

我想在java语法中进行一些更改.例如,我想使用运算符'+'来添加向量.所以我想要这个代码:

public class Vector2 {
    public float x, y;
    public Vector2(float x, float y) {this.x = x;this.y = y;}
    public String toString() {...}

    public static Vector2 operator+(Vector2 a, Vector2 b) {
        return new Vector2(a.x + b.x, a.y + b.y);
    }

    public static void main(String[] args) {
        Vector2 a = new Vector2(3, 6);
        Vector2 b = new Vector2(2, 8);
        System.out.println(a + b);
    }
}
Run Code Online (Sandbox Code Playgroud)

将被转换为这个标准的java代码:

public class Vector2 {
    public float x, y;
    public Vector2(float x, float y) {this.x …
Run Code Online (Sandbox Code Playgroud)

java preprocessor

1
推荐指数
1
解决办法
605
查看次数

Hibernate 4调用c3p0不支持的setBinaryStream

Hibernate 4使用jdbc4,将方法setBinaryStream(int,InputStream,int)的签名更改为setBinaryStream(int,InputStream,long).C3P0不支持这种新方法.

因此调用saveOrUpdate(myObjWithBlob)结果

java.lang.AbstractMethodError: com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.setBinaryStream(ILjava/io/InputStream;J)V
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.hibernate.engine.jdbc.internal.proxy.AbstractStatementProxyHandler.continueInvocation(AbstractStatementProxyHandler.java:122)
at org.hibernate.engine.jdbc.internal.proxy.AbstractProxyHandler.invoke(AbstractProxyHandler.java:81)
at $Proxy75.setBinaryStream(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

那我现在该怎么办?

1)不要使用c3p0.DHCP,BoneCP或根本没有连接池. - 真的不是我想要的选择.

2)以某种方式让hibernate避免调用这个新方法?有可能吗?

3)切换回休眠3 - 对我来说也不是很好.

java hibernate c3p0

0
推荐指数
1
解决办法
2397
查看次数