我正在尝试在我的Java GUI应用程序中实现多线程,以便在运行几个密集方法时释放接口.我主要来自C#开发背景,并且在该环境中使用了几次Threads,并没有太多困难.
大致:
C#
现在进入Java应用程序本身,它是一个GUI应用程序,有几个按钮执行不同的操作,应用程序使用MIDI API播放MIDI音符,我有播放,停止和添加单个音符等功能.(需要注意的一点是,我不播放MIDI文件,而是手动创建音符/消息,通过音轨播放).
我想在他们自己的线程中运行三个特定的操作
我有一个名为MIDIControl的类,它包含所有必要的功能,例如播放,停止和生成我需要的消息的实际操作.在FooView.Java类中为GUI表单本身创建了此对象的实例,这意味着例如:
我已经看过通过Java实现线程,并且从我看到它以与C#方法不同的方式完成,有人可以向我解释如何在我的情况下实现线程吗?
如有必要,我可以提供代码示例,感谢您的时间.
我有输入:"ListClients param1 param2"
分割" "到"ListClients", "param1", "param2";
我想从ListClients调用一个静态方法.
它会这样做 ListClients.someMethodThatTakesPraams(param1, param2);
有没有办法在java中做到这一点?
我想知道这有什么问题.它给了我一个构造函数错误(java.io.InputSream)
BufferedReader br = new BufferedReader(System.in);
String filename = br.readLine();
Run Code Online (Sandbox Code Playgroud) 当我尝试给它一个基本的文本文件时,为什么这段代码进入无限循环?
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代码"和"结构图"的例子吗?
我已经阅读了一些涉及相同问题的线程,但解决方案无法正常工作.:/
我使用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)
} …
我会为每个支付模式类如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) 我收到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) 好的...我正在尝试实现我自己的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) 给定大小为100的未排序值的数组(列表具有100个元素),并且从[0 ... 1000]的范围中随机地绘制每个值.设计一种算法,以线性时间(即O(N)最差情况下的性能)对给定列表进行排序.
提示:利用事先知道值范围的事实(即从1到1000)
这是我班级的硬件问题之一.他想要一个执行上述功能的伪代码.我只是想不出一个具有O(N)最坏情况性能的功能.
PS - 它不应该像Radix sort那样复杂.PSS - 我只是想知道如何做到这一点的想法.不找人做我的作业.
这是在java顺便说一句.
谢谢!