小编Cri*_*zly的帖子

Java - 静态编程风格

当我第一次开始学习java GUI(swing)编程时,我所展示的方式更像是一个MVC模型,它涉及使用接口调用事物并跨类传递变量.

我最近开始以更静态的方式编程,让Jframe调用它的静态Jpanel并使用静态方法来更改组件.基本上我是静态编程所以我可以轻松地从不同的类中调用它们.

下面是一个例子:

我的主要JFrame类叫做"Home",我静态地初始化了Toolbar类:

private static Toolbar toolbar = new Toolbar();
Run Code Online (Sandbox Code Playgroud)

现在每当我想做某事时,例如改变颜色,我只是从另一个类调用:

Home.toolbar.setForeground(Color.green);
Run Code Online (Sandbox Code Playgroud)

这是一种好的编程方式吗?到目前为止,我还没有遇到任何麻烦,但是当我从中学到的人并没有这么做时,我感到很困惑.

这种编程方式有任何重大缺陷吗?有哪些替代方案?

java user-interface coding-style

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

使 HTML 输入区域只读但可选择

我有一个透明的输入区域,当您单击它时,会显示发光的边框(预期),您可以编辑文本。我试图让发光的边框在您单击它时仍然显示,但使里面的文本不可编辑。

<input style='border:none; background:none;' value='TEXT'>  
Run Code Online (Sandbox Code Playgroud)

添加readonlyreadonly="readonly"使输入像不可编辑的 div 一样,您无法双击输入区域以将其全部选中并且不会显示发光边框。如何在不更改文本的情况下保留输入功能?

html javascript css jquery

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

通过netcat连接发送字符串

我打开了两个虚拟机,一个是监听连接,另一个是nc <ip> <port>从python子进程调用连接.我想在连接上只发送一行文本然后关闭它.我知道如何发送文件cat cat <file> | nc <ip> <port>但是如何在nc命令中发送一行文本(不使用文件)?

python netcat

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

循环遍历ArrayList并将值放入HashMap与仅搜索ArrayList的时间复杂度

如果你从ArrayList<Obj>a 开始,是否有时间好处来循环ArrayList并将值放入HashMap一个有用的搜索键中?或者,ArrayList通过将它放入其中而几乎否定了你将获得的任何好处HashMap

我假设如果你要对新的搜索执行许多搜索,你仍然可以获得一个好处HashMap,但是只有一次搜索呢?

java hashmap time-complexity

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

使除了1个元素之外的所有元素浮动FlowLayout

我已将所有FlowLayout元素设置为向左浮动:

setLayout(new FlowLayout(FlowLayout.LEFT));
Run Code Online (Sandbox Code Playgroud)

但我希望最后(右手边)的那个向右浮动,我怎么能让除了一个浮动之外的所有浮动?

java swing layout-manager flowlayout

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

如何使用Bro从pcap文件生成software.log?

我正在尝试从我拥有的PCAP文件中生成software.log文件,默认bro -r my.pcap似乎会生成某些日志文件,但不是此文件。在搜索local完最后添加的内容之后,应该对其进行修复,但事实并非如此。

intrusion-detection bro

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

如何验证HMAC java

我有以下代码来使用密码计算 Hmacs:

public static void main(String[] args) throws NoSuchAlgorithmException, InvalidKeyException 
{
  String password = "password123";
  SecretKeySpec keySpec = new SecretKeySpec(password.getBytes(), "HmacSHA1");

  Mac mac = Mac.getInstance("HmacSHA1");
  mac.init(keySpec);

  byte[] result = mac.doFinal("This is a test string".getBytes());

  System.out.println(new Base64().encodeAsString(result));
}
Run Code Online (Sandbox Code Playgroud)

但我不知道如何使用密码验证它,我正在阅读此处的Java 文档,但我似乎找不到验证函数或任何内容,有关 HMAC 的部分非常短。

如何使用密码验证 HMAC?

java hmacsha1

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

Wireshark如何解释字节顺序?

我正在使用802.11 radiotap标头制作我自己的解析器,它指出数据包格式是这种格式,长度为2个字节:

在此处输入图片说明

在Wireshark中,标头的十六进制是以下形式,其中2个字节19 00是长度字段,但是Wireshark忽略尾随的00,并将其解释为legnth 25(十进制),而不是长度6400(十进制):

在此处输入图片说明

Wireshark如何(正确)知道正确地解释数字?

上面的链接说长度存储在little endian中,而我的系统是little endian,所以我不确定在那前面发生了什么?

c packet-capture wireshark libpcap 802.11

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

C指针值混合

我正在使用数据包捕获库,我已经将它打印出来的数据包IP地址到控制台使用它正常工作:

printf("       From: %s\n", inet_ntoa(ip->ip_src));
printf("         To: %s\n", inet_ntoa(ip->ip_dst));
Run Code Online (Sandbox Code Playgroud)

下面几行我用不同的.C文件调用一个方法,使用它传递IP地址和端口号:

addpacket(0, inet_ntoa(ip->ip_src), inet_ntoa(ip->ip_dst), ntohs(tcp->th_dport)); 
Run Code Online (Sandbox Code Playgroud)

方法是: void addpacket(int table, char *srcIP, char *dstIP, int port) {...}

但是在addpacket方法中我将这个打印到控制台:

printf("---------------------SRC:%s\n", srcIP);
printf("---------------------DST:%s\n", dstIP);
printf("---------------------PRT:%i\n", port);
Run Code Online (Sandbox Code Playgroud)

我得到这样的结果:

---------------------SRC:192.168.1.64
---------------------DST:192.168.1.64
---------------------PRT:60549
Run Code Online (Sandbox Code Playgroud)

其中源和目标IP地址始终相同.我找不到任何混合起来的地方.如果我在原始.C文件中将其打印到控制台,则会显示正确的IP地址,但在方法调用期间似乎混淆了一些东西.有任何想法吗?

c pointers

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