Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Javascript逻辑派生的Java代码工作不正常_Javascript_Java_Netbeans 8_Wave_Trigonometry - Fatal编程技术网

从Javascript逻辑派生的Java代码工作不正常

从Javascript逻辑派生的Java代码工作不正常,javascript,java,netbeans-8,wave,trigonometry,Javascript,Java,Netbeans 8,Wave,Trigonometry,我正在使用NetBeans8 IDE 下面是来自此函数的JavaScrippt函数 在这里,程序员使用java脚本创建移动的正弦波 基于同样的想法,通过做一些细微的更改,我使用定时器t创建了一个java程序。等式与上面的等式完全相同。但是我的jRadioButton是无法控制的。 用这种方法可以产生一个移动的正弦波吗 请帮我解决这个问题。提前谢谢 下面是我的一些java代码 Timer t = new Timer(10, new ActionListener() {

我正在使用NetBeans8 IDE

下面是来自此函数的JavaScrippt函数

在这里,程序员使用java脚本创建移动的正弦波

基于同样的想法,通过做一些细微的更改,我使用
定时器t
创建了一个java程序。等式与上面的等式完全相同。但是我的
jRadioButton
是无法控制的。 用这种方法可以产生一个移动的正弦波吗

请帮我解决这个问题。提前谢谢

下面是我的一些java代码

Timer t = new Timer(10, new ActionListener() {                                                                                           
    @Override                                                                                                                           
    public void actionPerformed(ActionEvent e) {            

                                          //AL1 is the name given to radiobutton
            int xnow=AL1.getX()+1;
            int ynow=AL1.getY();
            ynow=(int) (ynow+Math.sin(2*Math.PI*(xnow/50))*10);
            AL1.setLocation(xnow, ynow);
        }                                                                                                                            
});  


private void formWindowOpened(java.awt.event.WindowEvent evt) {                                  
    // TODO add your handling code here:
    AL1.setLocation(0, 200);
    t.start();
}


  javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
            .addContainerGap()
            .addComponent(Lpne, javax.swing.GroupLayout.DEFAULT_SIZE, 1030, Short.MAX_VALUE)
            .addContainerGap())
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addComponent(Lpne, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 551, Short.MAX_VALUE)
    );
请尝试控制我的
jRadioButton

谢谢大家。。。 这是最终的结果


2不同的问题会影响您的逻辑

  • 布局:您需要将Swing组件放到没有布局的容器组件中。或者我们可以称之为没有布局的平面

  • 除法:除法运算符接受两个操作数并返回一个值。这两个操作数和返回值具有类型。除数操作数的返回类型等于操作数的类型,该类型是最大的一组数字。示例:
    int/short返回int
    int/int返回int
    float/int返回float

<>所以让我们考虑JavaScript中的分割,JavaScript只有一个类型和它的个数(实数集)。所以结果总是一个实数

但在java中,您将xnow定义为int,而50是常数int,那么结果必须是int,这意味着:

30 / 50 = 0;
所以你必须使你的一个操作数成为实数。 在Java中,您可以为此选择Float类型

30 / 50F = 0.6;
50F是一个恒定的浮点值

所以如果你像这样修改代码

Timer t=new Timer(10,new ActionListener(){
public void actionPerformed(java.awt.event.ActionEvent e){
int xnow=AL1.getX()+1;
int ynow=AL1.getY();
ynow=(int)(ynow+Math.sin(2*Math.PI*(xnow/50f))*10);
AL1.设置位置(xnow,ynow);
}
});
用这种容器装的

private void initGui(){
大型机=新JFrame(“测试框架”);
大型机。设置大小(800600);
mainFrame.setLayout(空);
AL1=新的JRadioButton(“收音机”);
AL1.设置大小(100100);
AL1.setVisible(真);
AL1.设定位置(50,50);
mainFrame.add(AL1);
mainFrame.setVisible(true);
}

您的逻辑将像javascript一样工作

你把AL1放在哪里了?很可能Al1的父级布局不支持基于笛卡尔坐标(x,y)像素的定位功能。它只是我的
JRadiobutton
的一个名称。显然它有
.getX()
和'getY()`方法。我还使用
JRadiobutton
JLabel
创建了一个模拟时钟,我没有问AL1是什么。我问哪个对象包含AL1,我们称这个对象为AL1的父对象,AL1的父对象的布局类型是什么?我现在将所有组件放在
jLayeredpane
描述的有问题的布局部分上。我对我的问题做了一些编辑,请检查一下,你能检查一下吗?我现在不能测试它,但是让continer的布局为null应该可以工作。但是它应该是Al1的父级,我建议你只使用空的contentPane测试它,而不使用layeredpane,然后尝试在你的布局系统中实现。太好了,先生,非常好用。谢谢你的
float
ing想法。这对我来说真是个新鲜的想法。非常感谢。先生,看看我的输出图像,我做了什么。这都是因为你的好主意,老板。谢谢。
30 / 50F = 0.6;