我是一名半初学者 Java 程序员,从各种来源学习 Java FX。在我的程序中,我想创建一个 ComboBox,并使用 ArrayList 中一系列对象的 toString() 输出填充选项。在这里,披萨配料被定义为一个对象。它们被创建并存储在一个 PizzaMgr 对象中,基本上是一个 ArrayList 的美化包装器:
public class Topping{
private String name;
public Topping(String a){
this.name=a;
}
public String toString(){
return this.name;
}
}
//=================================================
import java.util.ArrayList;
public class PizzaMgr{
private ArrayList<Topping> OrderedToppings;
public PizzaMgr(){
OrderedToppings = new ArrayList<Topping>();
OrderedToppings.add(new Topping("Pepperoni"));
OrderedToppings.add(new Topping("Mushrooms"));
OrderedToppings.add(new Topping("Onions"));
}
public ArrayList<Topping> getList(){
return OrderedToppings;
}
}
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好。但我遇到的问题是当我想要一个 ComboBox 列出 PizzaMgr 的 ArrayList 中的所有项目时。理想情况下,我想使用这个 ComboBox 构造函数:
ComboBox<T>(ObservableList<T> items)
Run Code Online (Sandbox Code Playgroud)
问题?如何将所有 ArrayList 项提取到 Observable List 中?我一直在阅读 Arraylists、Observable Lists、接口,但我不知道如何让它工作。我读过 …
我在标准 C 中阅读了很多关于 malloc() 和 free() 的内容。据我所知,你只malloc()需要一次内存,然后你只free()需要一次相同的内存。这可能是不好的做法,但我知道在你malloc()记忆之后,你可以定义多个指向它的指针。一旦你找到free()任何这些指针,分配的内存就会被取消分配?
考虑这个玩具示例:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(){
char* p = (char*)malloc(10 * sizeof(char)); // allocate memory
int* q = (int*)p; // pointer to the same block of memory
*p = 'A'; // Input some data
printf("TEST:: %c %d\n", *p, *q); // Everything's ok so far...
free(p); // free() my allocated memory?
sleep(10); // wait
printf("%c\n", *q); // q now points to de-allocated memory …Run Code Online (Sandbox Code Playgroud) 我是一名经验丰富的 C++ 人,正在学习 Java 并在此网站上度过了愉快的学习时光。最近,我对 Java 如何将一个文件附加到另一个文件进行了一些研究。假设我有两个文件。这是 C:\tmp\permFile.txt:
Line A: abcef
Line B: ghijk
Line C: lmnop
Run Code Online (Sandbox Code Playgroud)
这是 C:\tmp\tmpFile.txt:
line 1: 1234567890
line 2: 0123456789
line 3: 9012345678
line 4: 8901234567
Run Code Online (Sandbox Code Playgroud)
这里的目标很简单;我想将 tmpFile.txt 附加到 permFile.txt 的末尾。我研究了代码来做到这一点,并认为我已经解决了问题。直到今天我才注意到运行代码后 permFile.txt 看起来像这样:
Line A: abcef
Line B: ghijk
Line C: lmnop: 9012345678
line 4: 8901234567
Run Code Online (Sandbox Code Playgroud)
我认为这里发生的是 permFile 长 48 个字符(16 个字符/行)。我的代码在 tmpFile 中精确计算了 48 个字符,并从第 49 个字符开始追加。很奇怪吧?
这是代码:
import java.io.*;
public class myProgram {
public static void main(String[] args) throws IOException {
// Define …Run Code Online (Sandbox Code Playgroud) 我是一名初级 Java 程序员,在当地大学完成了“Java 101”课程。我也在推动自己学习一些额外的主题,包括 Java FX。我已经学习了 Oracle 网站上的 Java FX 教程,还浏览了一些 YouTube 视频,还阅读了“Java FX for Dummies”(这是我能找到的最适合初学者的书。)所有这些材料都教会了我很多基础知识,但有些(应该)相对简单的东西让我望而却步。
例如:假设我有一个 Java FX 程序,它在一个舞台上使用多个场景。当用户点击“切换!” 按钮,第二个场景被换出第一个。简单。我可以在一个 .java 文件中完成所有这些,没问题。(见下面的代码)
但是我的 .java 类文件变得很长而且很难进行故障排除。如果我可以将一个场景定义/声明/初始化为一个 .java 文件中的一个类,并将第二个场景定义/声明/初始化为另一个 .java 文件中的另一个类,那就太好了。这将使跟踪每个场景的组件变得更加容易。问题是,我不知道如何做到这一点。
我想你会先写一个 Scene1.java 类,然后写一个 Scene2.java 类,当你想切换场景时,只需在两者之间传递舞台对象。但是我找不到一个例子来说明这是如何完成的,我所有的尝试都会导致编译器错误或非常可怕的运行时错误。
有谁知道如何做到这一点?如果是这样,我需要怎么做才能修改SwitchScenes2()下面的方法以创建新Scene2对象并将其传递给舞台?
谢谢!饶
/*
JavaFXExample.java
*/
import javafx.application.*;
import javafx.stage.*;
import javafx.scene.*;
import javafx.scene.layout.*;
import javafx.scene.control.*;
import javafx.event.*;
import javafx.geometry.*;
public class JavaFXExample extends Application{
public static void main(String[] args){
launch(args);
}
Button btnSw1;
Button btnSw2;
Button btnClose;
HBox hbox1;
VBox vbox1; …Run Code Online (Sandbox Code Playgroud) 我需要一种智能的方法来区分多个对象,来自同一父类的所有子类.考虑这个父类和两个子类:
public class Fruit {
String name;
public Fruit(String a){
this.name = a;
}
}
public class Orange extends Fruit {
public Orange(String a){
super(a);
}
}
public class Apple extends Fruit {
int price;
public Apple(String a, int b){
super(a);
this.price = b;
}
public void checkPrice(){
if(this.price>2)
System.out.print(" -- This apple is too expensive!");
else
System.out.print(" -- This apple is cheap.");
}
}
Run Code Online (Sandbox Code Playgroud)
(另外,假定我有很多水果的子类,这里没有显示).现在,我想所有的水果储存在水果车:
public class FruitCart {
Fruit[] cart;
public FruitCart(){
cart = new Fruit[4]; …Run Code Online (Sandbox Code Playgroud) 这里是 Perl 新手。我有一个解析日志文件的 Perl 脚本 (v5.26.1)。由于我无法控制的原因,日志中每个日期的格式如下:
"yyyy.mm.dd.hh.mm.ss"
Run Code Online (Sandbox Code Playgroud)
例如:
"2022.09.19.16.35.00"
Run Code Online (Sandbox Code Playgroud)
请注意,年始终为四位数字,而月、日、小时、分钟和秒始终为两位数。(例如九月是09)
我需要将此字符串转换为 DateTime 对象以进行比较。我以为这个练习会很容易,但是五个小时和大量谷歌搜索之后毫无结果,我还差得很远。这是我的第一次尝试:
#!/usr/bin/perl
use warnings;
use strict;
sub transStrToDTime
{
# Example format of a date: "2022.09.19.16.35.00"
my $str = @_; # Only one input argument
use DateTime qw( );
my ($y,$m,$d,$h,$m,$s) = $str =~ /^([0-9]{4}).([0-9]{2}).([0-9]{2}).([0-9]{2}).([0-9]{2}).([0-9]{2})\z/
or die;
my $dt = DateTime->new(
year => $y,
month => $m,
day => $d,
hour => $h,
minute => $m,
second => $s,
time_zone => 'local'
);
printf("=-=-=-=-=-=-=->>> \"$dt\"\n");
} …Run Code Online (Sandbox Code Playgroud) 我想split()在两个换行符上都有一个字符串和空格字符的字符串:
#!/usr/bin/perl
use warnings;
use strict;
my $str = "aa bb cc\ndd ee ff";
my @arr = split(/\s\n/, $str); # Split on ' ' and '\n'
print join("\n", @arr); # Print array, one element per line
Run Code Online (Sandbox Code Playgroud)
输出是这样的:
aa bb cc
dd ee ff
Run Code Online (Sandbox Code Playgroud)
但是,我想要的是这样的:
aa
bb
cc
dd
ee
ff
Run Code Online (Sandbox Code Playgroud)
所以我的代码在换行符上分裂(好),但不在空格上。 根据 perldoc,空格应该与\s字符类中的匹配,我会假设这 是空格。我错过了什么吗?
我正在学习JavaFX,特别是尝试使用TableColumn和TableView类来实现一个表.我的程序编译没有错误,但在编译时我收到一个不祥的警告:
C:\JavaFX_Sandbox>javac robotApp.java
Note: robotApp.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
C:\JavaFX_Sandbox>
Run Code Online (Sandbox Code Playgroud)
这足以让我足够强大,以至于我没有勇气尝试实际运行我的程序.我在StackOverflow和其他一些网站上做了一些挖掘,并发现这个警告的最可能原因是我正在使用原始数据类型.但如果是这样,我无法发现它们.如果没有,我担心这个消息可能意味着什么.
尽快描述我的程序:我创建了一个书呆子robot.java类:
public class robot{
private String name;
private int intelligence;
public robot(String a, int b){
this.name = a;
this.intelligence = b;
}
}
Run Code Online (Sandbox Code Playgroud)
没有什么花哨.为了存储所有这些机器人,我创建了一个robotMgr.java类,基本上是一个美化的ArrayList来保存它们:
import java.util.ArrayList;
import java.util.List;
import javafx.collections.*;
public class robotMgr{
private ArrayList<robot> robotList;
private ObservableList<robot> oRobotList;
robotMgr(){
robotList = new ArrayList<robot>();
robotList.add(new robot("R2-D2", 7));
robotList.add(new robot("Cylon", 3));
robotList.add(new robot("The Terminator", 5));
robotList.add(new robot("WALL-E", 6));
populateOList();
}
public void populateOList(){ …Run Code Online (Sandbox Code Playgroud) 我正在努力使用一个C结构,它必须包含一个动态的较小结构数组:
typedef struct issueStruct {
int data;
} issue;
typedef struct volumeStruct {
issue* collection;
size_t elements;
} volume;
Run Code Online (Sandbox Code Playgroud)
我可以在卷结构的数组中动态创建尽可能多的问题结构.我也可以遍历那个数组:
int main(){
volume* TimeMagazine = (volume*)malloc(sizeof(volume));
TimeMagazine->collection = (issue*)malloc(4 * sizeof(issue));
TimeMagazine->elements = 4;
issue* ptr = TimeMagazine->collection;
int i;
// Populate & iterate through array:
i = 0;
while(i < TimeMagazine->elements){
ptr->data = 100*i;
printf("%d) %d\n", i, ptr->data);
i++;
ptr = ptr+i; // Advance ptr
}
return 0;
}
OUTPUT:
[Linux]$ gcc -Wall magazines.c
[Linux]$ ./a.out
0) 0
1) …Run Code Online (Sandbox Code Playgroud) 我是一名网络专家,正在尝试构建我的第一个 Kafka --> Prometheus --> Grafana 管道。我的 Kafka 经纪人有一个由外部制作人填充的主题。那太棒了。但是我不知道如何配置我的 Prometheus 服务器以从该主题中作为消费者抓取数据。
我还应该说我的 Kafka 节点在我的主机 Ubuntu 机器上运行(不在 Docker 容器中)。当我运行 Kafka 时,我也在运行一个 JMX 导出器的实例。以下是我在 Ubuntu 命令行上启动 Kafka 的方法:
KAFKA_OPTS="$KAFKA_OPTS -javaagent:/home/me/kafka_2.11-2.1.1/jmx_prometheus_javaagent-0.6.jar=7071:/home/Me/kafka_2.11-2.1.1/kafka-0-8-2.yml" \
./bin/kafka-server-start.sh config/server.properties &
Run Code Online (Sandbox Code Playgroud)
好的。我的 Prometheus(也是一个主机进程,不是 Docker 容器版本)可以成功地从我的 Kafka 中提取很多指标。所以我只需要弄清楚如何让 Prometheus 读取我的主题中的消息。我想知道这些消息是否已经可见?我的主题称为“vflow.sflow”,当我查看 Kafka (TCP 7071) 上可用的“可抓取”指标时,我确实看到了这些指标:
From http://localhost:7071/metrics:
kafka_cluster_partition_replicascount{partition="0",topic="vflow.sflow",} 1.0
kafka_cluster_partition_insyncreplicascount{partition="0",topic="vflow.sflow",} 1.0
kafka_log_logendoffset{partition="0",topic="vflow.sflow",} 1.5357405E7
kafka_cluster_partition_laststableoffsetlag{partition="0",topic="vflow.sflow",} 0.0
kafka_log_numlogsegments{partition="0",topic="vflow.sflow",} 11.0
kafka_cluster_partition_underminisr{partition="0",topic="vflow.sflow",} 0.0
kafka_cluster_partition_underreplicated{partition="0",topic="vflow.sflow",} 0.0
kafka_log_size{partition="0",topic="vflow.sflow",} 1.147821017E10
kafka_log_logstartoffset{partition="0",topic="vflow.sflow",} 0.0
Run Code Online (Sandbox Code Playgroud)
“分区 0”、“日志大小”、“日志结束偏移”……所有这些看起来都很有希望……我猜?
但请记住,我对 Kafka/JMX/Prometheus 生态系统完全陌生。问题:上述指标是否描述了我的“vflow.sflow”主题?我可以使用它们来配置 Prometheus 以实际读取主题中的消息吗?
如果是这样,有人可以为此推荐一个好的教程吗?我一直在玩我的 Prometheus YAML 配置文件,但我设法做的就是在我这样做时使 Prometheus …
java ×4
javafx ×3
c ×2
free ×2
perl ×2
apache-kafka ×1
append ×1
arraylist ×1
arrays ×1
class ×1
combobox ×1
datetime ×1
dynamic ×1
file ×1
inheritance ×1
jmx-exporter ×1
malloc ×1
pointers ×1
prometheus ×1
scene ×1
split ×1
stage ×1
string ×1
struct ×1
whitespace ×1