小编Tim*_*der的帖子

从C#背景实现Java中的线程

我正在尝试在我的Java GUI应用程序中实现多线程,以便在运行几个密集方法时释放接口.我主要来自C#开发背景,并且在该环境中使用了几次Threads,并没有太多困难.

大致:

C#

  • 创建一个Thread对象
  • 为它分配一个方法来开始
  • 启动线程

现在进入Java应用程序本身,它是一个GUI应用程序,有几个按钮执行不同的操作,应用程序使用MIDI API播放MIDI音符,我有播放,停止和添加单个音符等功能.(需要注意的一点是,我不播放MIDI文件,而是手动创建音符/消息,通过音轨播放).

我想在他们自己的线程中运行三个特定的操作

  1. 播放存储的MIDI音符
  2. 通过文本框显示仪器列表
  3. 生成100个随机笔记

我有一个名为MIDIControl的类,它包含所有必要的功能,例如播放,停止和生成我需要的消息的实际操作.在FooView.Java类中为GUI表单本身创建了此对象的实例,这意味着例如:

  1. 按"生成"
  2. 事件处理程序在FooView.Java类中执行"GenerateNotes"方法
  3. 然后,此方法在MIDIControl实例中执行"生成"方法

我已经看过通过Java实现线程,并且从我看到它以与C#方法不同的方式完成,有人可以向我解释如何在我的情况下实现线程吗?

如有必要,我可以提供代码示例,感谢您的时间.

c# java midi user-interface multithreading

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

Java:有没有办法将文本转换为类?

我有输入:"ListClients param1 param2" 分割" ""ListClients", "param1", "param2";

我想从ListClients调用一个静态方法.

它会这样做 ListClients.someMethodThatTakesPraams(param1, param2);

有没有办法在java中做到这一点?

java reflection

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

缓冲的阅读器和扫描仪

我想知道这有什么问题.它给了我一个构造函数错误(java.io.InputSream)

BufferedReader br = new BufferedReader(System.in);
String filename = br.readLine();
Run Code Online (Sandbox Code Playgroud)

java

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

扫描仪类hasNextLine无限循环

当我尝试给它一个基本的文本文件时,为什么这段代码进入无限循环?

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.*;
public class TestFile
{

    public static void main(String args[]) throws IOException
    {
            // Read in input file                                                                                                                                            
            File input = new File(args[0]);
            Scanner freader = new Scanner(input);
            while (freader.hasNextLine()) {
                System.out.println("hi");
            }

            freader.close();

    }

}
Run Code Online (Sandbox Code Playgroud)

印刷线一直在继续.

java loops file input

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

验证电子邮件地址是否包含"@"和"."

我需要验证插入的电子邮件地址是否包含"@"和"." 没有正则表达式.请问有人给我"java代码"和"结构图"的例子吗?

java email validation email-address

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

使用FileReader导致编译器错误"未处理的异常类型FileNotFoundException"

我已经阅读了一些涉及相同问题的线程,但解决方案无法正常工作.:/

我使用Eclipse,这是我的程序.

package mypackage;
import java.io.*;


public class myclass {


public static void main(String[] args) {
    //String myfile = "/home/jason/workspace/myproject/src/mypackage/myscript.abc";
    String myfile = "src/mypackage/myscript.abc";
    File file1 = new File(myfile);
    if(file1.exists()) {
        log(myfile + " exists. length : " + myfile.length());
    }
    else{
        log(myfile + " does not exist");
        //System.exit(1);
    }

    //FileReader fr = new FileReader("myscript.abc");//I uncomment this and die inside


    System.out.println("\nAbsPath : " + new File(".").getAbsolutePath());
    System.out.println("\nuser.dir : " + System.getProperty("user.dir"));


}

public static void log(String s){
    System.out.println(s);
}
Run Code Online (Sandbox Code Playgroud)

} …

java compiler-errors

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

基于对象值实例化特定类

我会为每个支付模式类如Cash,Cheque,Card.我必须基于对象值传递对象作为参数我必须实例化相关的类.

我怎样才能做到这一点?建议我一个更好的设计

public interface CollectionInfo {
    //Code Goes here
}

public class Cash implements CollectionInfo {
    //Code goes here
}

public class CollectionFactory {
    public void newInstance(Enum<CollectionMode> collectionMode) {
    }
}

public interface Receipts {
    public Receipt createReceipt(String Amount, /*(Here i need to pass parameter of object either cash ,Cheque or card),*/Date date);
}
Run Code Online (Sandbox Code Playgroud)

java design-patterns

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

编译错误,找不到符号和构造函数不能应用于给定的类型

我收到2个错误:

ControllingSpeed.java:89: constructor Thread in class Thread cannot be applied to given types
   Thread th=new Thread(r);
              ^
required: no arguments
found: Runnable
ControllingSpeed.java:90: cannot find symbol
   th.start(r);
     ^
symbol:   method start(Runnable)
location: class Thread
2 errors
Run Code Online (Sandbox Code Playgroud)

我不知道错误的原因.

// Demo On JSlider

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.lang.Thread.*;

class ControllingSpeed extends JPanel{

...<snip>...

public void threadForSpeed(final ChangeEvent ce) {   // <----- cause of error ?
    try { 
        Runnable r = new Runnable() {
            public void run() { …
Run Code Online (Sandbox Code Playgroud)

java compiler-errors

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

IndexOutOfBoundsException为什么?

好的...我正在尝试实现我自己的bin排序版本,通常称为桶排序.我运行程序,我得到一个indexOutOfBounds错误.我不知道为什么.有人可以解释原因.请注意,binsort算法尚未完成.Int n是数组的长度,m是由随机数生成器从0到100生成的列表的上限.

public static void binSort (int []array, int n, int m)
{
//create upperbounds
int x = m / 3;                    //33
int y = n - x;                    //67
int z = n;                        //100

int []temp1 = new int [n-1];
int []temp2 = new int [n-1];
int []temp3 = new int [n-1];

for (int i: array)
{
    if(array[i] < x)
    {
        temp1[i] = array[i];
    }
    else if(array[i] < y)
    {
        temp2[i] = array[i];
    }
    else
    {
        temp3[i] = array[i];     
    } …
Run Code Online (Sandbox Code Playgroud)

java sorting

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

O(N)排序算法

给定大小为100的未排序值的数组(列表具有100个元素),并且从[0 ... 1000]的范围中随机地绘制每个值.设计一种算法,以线性时间(即O(N)最差情况下的性能)对给定列表进行排序.

提示:利用事先知道值范围的事实(即从1到1000)

这是我班级的硬件问题之一.他想要一个执行上述功能的伪代码.我只是想不出一个具有O(N)最坏情况性能的功能.

PS - 它不应该像Radix sort那样复杂.PSS - 我只是想知道如何做到这一点的想法.不找人做我的作业.

这是在java顺便说一句.

谢谢!

java sorting algorithm

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