public class arDroneFrame extends javax.swing.JFrame implements Runnable, DroneStatusChangeListener, NavDataListener {
private String text; // string for speech
private static final long CONNECT_TIMEOUT = 10000;
public ARDrone drone;
public NavData data;
public Timer timer = new Timer();
public int batteryGraphic=0;
public int [] arrayBatt = new int[9999999];
public arDroneFrame(String text) {
this.text=text;
}
public arDroneFrame() {
initComponents();
initDrone();
}
private void initDrone() {
try {
drone = new ARDrone();
data = new NavData();
} catch (UnknownHostException ex) {
return;
}
videoDrone.setDrone(drone);
drone.addNavDataListener(this);
}
public void navDataReceived(NavData nd) {
getNavData(nd);
int battery = nd.getBattery();
cmdListOK.jlblBatteryLevelValue.setText(battery + " %");
//JLabel can get updated & always display new battery values
}
public void getNavData(NavData nd){
for(int i=0;i<arrayBatt.length;i++){
batteryGraphic= nd.getBattery();
arrayBatt[i] = batteryGraphic;
System.err.println("This is stored battery values : " + arrayBatt[i] + " " + i + "\n");
}
}
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
String text = "Welcome!";
arDroneFrame freeTTS = new arDroneFrame(text);
freeTTS.speak();
new arDroneFrame().setVisible(true);
}
});
}
结果:
This is stored battery values : 39 0
This is stored battery values : 39 1
This is stored battery values : 39 2
This is stored battery values : 39 3
This is stored battery values : 39 4
This is stored battery values : 39 5
问题就出在这种方法上:
public void getNavData(NavData nd){
for (int batteryValue : arrayBatt){
arrayBatt[i] = nd.getBattery();
System.err.println("This is stored battery values : " + arrayBatt[i] + " " + i + "\n");
}
}
通过传递navdata
实例来调用此方法。这意味着,nd
为nd.getBattery()
包含的任何值都被分配给数组中的每个索引,因为循环在电池数组上进行交互。
您应该做的是将循环移到getnavdata(navdatand)
方法之外,并为每个调用传递一个NavData
的新实例。当您将其与下面的ArrayList
建议结合时,您应该有一个不同电池值的动态数组
public int [] arrayBatt = new int[10000];
ArrayList<Integer> batteryArray = new ArrayList <Integer>();
您可以通过调用以下命令将项目添加到列表中:
batteryArray.add(item);
这个解决方案的好处是:
public void getNavData(NavData nd){
for (int batteryValue : arrayBatt){
arrayBatt[i] = nd.getBattery();
System.err.println("This is stored battery values : " + arrayBatt[i] + " " + i + "\n");
}
问题内容: 我有一项通过REST为我提供属性的服务。现在,我想将身体解组为属性结构。请查看此操场示例:单击。当我只有一个财产时,可以轻松将其编组为。但是,服务器发出的ACTUAL响应有所不同。我要解组的实际响应是这样的: 不幸的是,我不知道如何解组。有人可以指出正确的方向吗? 问题答案: 您需要解组一片属性:http : //play.golang.org/p/eRgjfBHypH
问题内容: 有没有一种方法可以将数组存储到mysql字段中?我正在创建一个评论评分系统,因此我想存储用户ID数组以防止进行多次投票。我将创建一个新表,其中包含评论ID和对此评论进行投票的用户ID数组。然后,我将加入评论表和该表,并检查当前用户ID是否存在于选民数组或注释中。如果是这样,将禁用投票图标。我想我会避免以这种方式在循环中使用mysql查询。 您碰巧知道更好的方法吗? 问题答案: 您始终可
问题内容: 我知道这应该是简单的,我可能正直盯着问题,但我再次陷入困境,需要代码专家的帮助。 我试图从jdbc的一列中取出一行,并将它们放入数组中。 我这样做如下: creatConnection是已经定义的方法,可以执行其明显的工作。我在创建另一个结果集的同时创建了我的结果集,我将该列的字符串存储到一个数组中。然后打印出来以备不时之需。还要确保它在那里。 问题在于其将整个列存储到contactL
问题内容: 如何将arrayList存储到Java中的数组中? 问题答案: 那取决于你想要什么: 现在,如果要将列表存储在数组中,则可以执行以下操作之一: 但是,如果要将列表 项 放在数组中,请执行以下一项操作: 参考:
问题内容: OK,所以我有一个JList,并且内容提供了一个数组。我知道如何向数组中添加元素,但是我想知道如何刷新JList …还是有可能?我尝试了Google。:\ 有任何想法吗? 谢谢。 问题答案: 一种好的方法是创建一个ListModel来为您管理数据并处理更新。 就像是: 然后,您可以简单地通过列表模型进行更改,例如
问题内容: 好吧,我写了一些代码,我所做的只是for循环,但是更改了我调用的方法。我尝试使用for循环,这样会更整洁(出于好奇,看是否可以完成),但是当我这样做时它不会编译,因为它无法识别其中的项目我认为将数组作为一种方法。这就是我所拥有的: 当我尝试编译时,我得到 (它引用while循环中的第一条语句) 所以,我认为这可能是因为我将其设置为String类型的Array?有方法类型吗?这是可能吗?