小编Nic*_*bey的帖子

关于Java switch语句 - 在每种情况下使用return和省略中断

鉴于这种方法,这是否代表了一些令人震惊的风格或语义失误:

private double translateSlider(int sliderVal) {
    switch (sliderVal) {
        case 0:
            return 1.0;
        case 1:
            return .9;
        case 2:
            return .8;
        case 3:
            return .7;
        case 4:
            return .6;
        default:
            return 1.0;
    }
}  
Run Code Online (Sandbox Code Playgroud)

这显然不符合这里的Java教程.

然而,它清晰,简洁,到目前为止已经完全符合我的需要.是否有令人信服的实用理由创建局部变量,在每种情况下为其赋值,为每个案例添加一个中断并在方法结束时返回值?

java return case break switch-statement

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

Scala Swing中的听众和反应

我在eclipse中做了一些搜索和一些试验和错误,但是当我使用Swing在Scala中编写GUI时,我对听众和反应的理解似乎存在差距.

每个侦听器是否都有一个反应块,或者我是否在可能生成事件的所有组件上注册侦听器,并在带有case语句的大型反应块中对每个组件做出反应?

听众和反应块究竟属于哪里.

这是我的GUI代码的缩写版本:

import scala.swing._
import scala.swing.event.ButtonClicked
import scala.swing.event.KeyTyped
import scala.swing.event.KeyPressed

object HumanGUI extends SimpleGUIApplication {

 val basicPane = new java.awt.Dimension(800, 200)
 val botPane = new java.awt.Dimension(400, 200)
 val felt = new java.awt.Color(35, 125, 35)

 def top = new MainFrame {

    title = "Blackjack GUI"

    val ConnectionPanel = new BoxPanel(Orientation.Vertical) {
      background = felt
      preferredSize = new java.awt.Dimension(155, 90)
      minimumSize = preferredSize
      maximumSize = preferredSize

      val ipAddressLabel = new Label("House IP:")
      ipAddressLabel.foreground = java.awt.Color.WHITE
      ipAddressLabel.horizontalTextPosition = scala.swing.Alignment.Left

      val portLabel …
Run Code Online (Sandbox Code Playgroud)

swing scala button listener textfield

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

在Erlang中理解和使用foreach

我有一个任务,用7种语言完成凯撒密码.我正在努力完成Erlang目前.我以前接触过函数式语言,所以我一般都明白我需要做什么.我特别难以理解Erlang中foreach函数的用法.我知道当你对副作用感兴趣时会使用它,所以我很确定这是做我想要的"正确"方式.我读过这个答案,并用Erlang语言参考在foreach的定义在这里.但是,我仍然有点困惑,无法正确使用语法.

-module(caesar).
-export([main/2]).  

enc(Char,Key) when (Char >= $A) and (Char =< $Z) or
               (Char >= $a) and (Char =< $z) -> 
Offset = $A + Char band 32, N = Char - Offset,
Offset + (N + Key) rem 26;

enc(Char, _Key) ->  Char.

encMsg(Msg, Key) ->
   lists:map(fun(Char) -> enc(Char, Key) end, Msg).

main(Message, Key) -> 

Encode = (Key), 
Decode = (-Key),
Range = lists:seq(1,26),

io:format("Message: : ~s~n", [Message]),
Encrypted = encMsg(Message, Encode),
Decrypted = encMsg(Encrypted, …
Run Code Online (Sandbox Code Playgroud)

erlang foreach

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

哪个是此设计的更好的顶级容器,JFrame与Jpanels,或JDesktop与JInternalFrames

我是Swing和AWT的初学者,我正在寻找使用Netbeans构建GUI.我的GUI需要三个区域,我目前正在考虑将其作为JFrame上的JPanels.我需要一个"绘图"面板,它将监听鼠标输入并绘制Java2D形状.绘图面板将固定在左上角.另外两个区域是"属性"滚动窗格和"控制器"滚动窗格.控制器窗格将确定将通过按钮显示哪些绘制元素,属性滚动窗格将显示有关在绘图窗格中单击的任何形状对象的详细信息(端点,颜色等).

绘图区域的典型用例是绘图区域中的第一次点击将是形状的第一组坐标,IE:一条线.该点击将被捕获为point2d对象.第二次单击将是第二个point2D对象,并且将在两者之间构建一条线.控制器区域将具有"圆形","线","椭圆"等按钮.根据单击的控制器按钮,将仅在绘图区域中绘制该类型的形状.控制器和属性滚动窗格将不可移动,它们将分别锁定并可调整到GUI的底部和右侧.

作为初学者,我正在努力使用最好的组件.我一直在阅读JDesktop和JInternalFrame,但似乎我并不真的需要这一切.一个简单的JFrame有三个JPanel就足够了吧?更具体地说,我认为我需要一个顶级JFrame,一个JPanel用于绘图框架和两个JScrollPanels.我需要在绘图窗格上使用鼠标监听器来捕获每次单击的坐标,以及控制窗格中每个按钮的监听器.我可以在JPanel上放置一个鼠标监听器,并为其绘制Java2D形状,还是需要在JPanel内部使用不同的(更好的?)容器来进行绘图?

java swing awt java-2d

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

单身是否适合这种设计?

我的模型已经实现,我正在研究一个视图.

我有一个名为Helper的类,它是我的控制器的一部分.Helper类的目的是包含模型的"主副本".其他类将调用Helper方法来请求他们自己的模型副本(整个或特定部分).Helper也是唯一允许对模型进行更改的类.

我正在处理的视图包含一个名为DrawingPanel的JPanel.DrawPanel的paint()方法被覆盖,以便在绘制自己之前从Helper检索模型.

将Helper类实现为单例是实现此目标的最佳方法,还是有更好/更简单/更优雅的方式来实现我的目标?

我想我也应该提前知道我的Helper作为单例的实现是否需要线程安全.gui是在Swing中设计的.

java singleton design-patterns

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