小编Ale*_*ets的帖子

如何使JDialog无效

我想使基于JDialog的窗口处于非活动状态,因此禁用所有控件(灰色).setEnabled(false)只是无法点击任何控件,甚至关闭窗口.但没有什么变成灰色.请帮忙.

编辑:这是示例代码.

import javax.swing.JButton;
import javax.swing.JDialog;


public class Analyzer extends JDialog{

public Analyzer() {
    JButton but = new JButton("test");
    setLayout(null);
    but.setBounds(10,10,100,100);

    add(but);
    setSize( 200, 200);
    setVisible(true);
    setEnabled(false);
}

public static void main(String[] args) {
    new Analyzer();
}

}
Run Code Online (Sandbox Code Playgroud)

java swing jdialog

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

如何在 MacOS X 上使用 JSVC 包装器注册(安装)为服务 Java 应用程序

我有一个应用程序,我想在 MacOS X 上作为服务运行。我使用 JSVC 作为包装器,目前它在控制台中启动得很好,关闭过程是正确的,等等。所以现在我必须将其注册为服务。找到了一些手册,编写了.plist文件。接下来我执行了

sudo launchctl load /Library/LaunchDaemons/my.service.plist
sudo launchctl start my.service
Run Code Online (Sandbox Code Playgroud)

但什么也没发生。服务没有启动。

列表内容:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>my.service</string>
<key>ProgramArguments</key>
<array>
<string>/servertest/MYService</string>
<string>-jvm</string>
<string>server</string>
<string>-outfile</string>
<string>out.txt</string>
<string>-errfile</string>
<string>err.txt</string>
<string>-verbose</string>
<string>-debug</string>
<string>-home</string>
<string>/System/Library/Frameworks/JavaVM.framework/Home</string>
<string>-cp</string>
<string>./lib/hsqldb.jar:./lib/my-wrapper.jar:./lib/commons-daemon-1.0.8.jar</string>
<string>my.service.DaemonMac</string>
</array>
<key>WorkingDirectory</key>
<string>/servertest</string>
<key>StandardOutPath</key>
<string>/servertest/stdout.log</string>
<key>StandardErrorPath</key>
<string>/servertest/stderr.log</string>
<key>KeepAlive</key>
<false/>
<key>RunAtLoad</key>
<true/>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

macos daemon apache-commons jsvc

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

Java核心:将null作为布尔值返回

我注意到了这一点:我的类有boolean成员,在某些运行点我看到它在调试器中的价值null.但是当我使用getter方法时,它会返回false.

我知道,大多数书都告诉你,boolean在Java中只有两个值,不像C/C++,其中每个非零数字都可以解释为true.所以我想知道,那里发生了什么?

当其他类型的某些值或null可被解释为时,还有其他任何情况false吗?也许在JLS的某个地方解释这个问题,有人可以指点我吗?

编辑:确实昨天是调试的糟糕日子.首先,我浪费了4个小时来找到一个错误的来源,当我逆转来源并再次做出相同的改变时,这个错误消失了.然后这个.我只是试图重现而不能.它是美化还是只是星期一是艰难的一天?我不知道.感谢大家的回应!我想你可以投票立即关闭或删除这个问题.

java null boolean

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

Java - int/long,float/double

我明白"2.5"自动是双倍的,为了使它成为一个浮点数,我需要做"2.5F"(或者F应该是小写?),并且我应该使用浮点数,比方说,如果我有一个常数只需要2个小数位(如安大略省PST税的"0.08F"),但我不确定"12"是int还是long,但我知道"12L"是长的,但是"长" l = 12"和"long l = 12L"似乎编译成相同的东西,如果我想要最大的非浮点精度,我使用long,如果我知道我不需要超出int的限制,则使用int.

如果那里有不对的东西,请纠正我,并回答我的问题.

java floating-point double primitive-types long-integer

3
推荐指数
2
解决办法
3万
查看次数

JFreeChart:有没有办法在XYPlot中的两行中绘制长刻度标签

我有遗留代码示例,它使用JFreeChart和XYPlot.现在我正在为该代码制作i18n,大多数非英语字符串比英语字符串长得多.我用google搜索包裹字符串的方法.没有成功.请帮忙!

label jfreechart

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

Tomcat 7数据源注入机制

我正在尝试创建简单的网络应用程序.并坚持数据源注入.似乎有几个问题.所以我将从困惑开始.据我所知,有两种(至少)方法将DataSource注入Servlet:

  • web.xml中
  • @Resource

web.xml示例

<resource-ref>
    <res-ref-name>jdbc/MyDB</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    <injection-target>
        <injection-target-class>ua.test.TestServlet</injection-target-class>
        <injection-target-name>dataSource</injection-target-name>
    </injection-target>
</resource-ref>
Run Code Online (Sandbox Code Playgroud)

@Resource示例

public class TestServlet extends HttpServlet{
    @Resource
    private DataSource dataSource;
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws     ServletException, IOException {
Run Code Online (Sandbox Code Playgroud)

我的困惑:web.xml在我的简单项目中在Tomcat 7中不起作用.在我看来,web.xml选项应该工作,因为在Java 5之前没有注释.请解释.

更新:

数据源配置

<Resource name="jdbc/MyDB" 
          type="javax.sql.DataSource" 
          auth="Container"
          username="SA"
          password=""
          driverClassName="org.hsqldb.jdbcDriver"        
          url="jdbc:hsqldb:file:~/database/my_db" 
/> 
Run Code Online (Sandbox Code Playgroud)

java web.xml servlets tomcat7

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

用java的Android IP地址

我正在编写支持多人游戏的Android视频游戏.有一个专用的服务器运行,当通过打开套接字点击多人游戏按钮时,机器人连接到这个服务器(这很好).服务器基本上只是作为配对系统.

当客户端托管游戏时,服务器会将该客户端添加到主机列表中.其他客户端可以选择查看此列表,然后连接到该主机.这就是问题所在.服务器应该跟踪主机的ip /端口,然后其他客户端应该使用此信息与主机打开套接字然后游戏启动.我正在尝试让主机将自己的IP地址发送到服务器以供其他客户端稍后使用.

到目前为止,我尝试了很多方法.一个是:

try {
        for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
            NetworkInterface intf = en.nextElement();
            for (Enumeration<InetAddress> enumIpAddr = intf.getInetAddresses(); enumIpAddr.hasMoreElements();) {
                InetAddress inetAddress = enumIpAddr.nextElement();
                if (!inetAddress.isLoopbackAddress()) {
                    return inetAddress.getHostAddress().toString();
                }
            }
        }
    } catch (SocketException ex) {
    }
Run Code Online (Sandbox Code Playgroud)

这将返回10.0.2.15,这显然对其他客户端无用.

我试过的另一种方法是:

String hostName = InetAddress.getLocalHost().getHostName();
        InetAddress addrs[] = InetAddress.getAllByName(hostName);
        for (InetAddress addr: addrs) {
            System.out.println ("addr.getHostAddress() = " + addr.getHostAddress());
            System.out.println ("addr.getHostName() = " + addr.getHostName());
            System.out.println ("addr.isAnyLocalAddress() = " + addr.isAnyLocalAddress());
            System.out.println ("addr.isLinkLocalAddress() = " + …
Run Code Online (Sandbox Code Playgroud)

java networking android

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

做"动画"的"Java"方式

我想用Java做动画.我看过:http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html

令我惊讶的是,在计时器动作处理程序中:

  • 我们实际上并没有绘制函数调用; 我们只是更新状态 - 所以看起来计时器动作用于"模拟"
  • 我们做一个重绘请求
  • Swing在方便时重新描述了它的请求

这对我来说有点奇怪,因为:

  • Swing可以将多个重绘请求整理为一个
  • 如果我在计时器中计算fps,我可能会超过计数(因为多次重绘成为一个)

问题:我是否错误地阅读了示例代码,或者这是用Java做动画的"正确"方法?

谢谢!

java animation swing

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

Java语言中的继承

我们说java遵循单个继承模型,即Java类最多只能扩展一个类.然后说每个java类都是从Object类继承的.

假设有两个类A和B.A和B都从Object扩展.现在假设A扩展B.是不是暗示A有多重继承(A是从B和Class对象继承)?

java inheritance

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