Java无法在未调用Looper.prepare()的线程内创建处理程序

我看到了大部分相关问题,但我找不到任何解决问题的方法。 这是我的代码,我不知道我做错了什么。 static class NamedFile { public File f; public String name; public String ext; public String path; public BitmapDrawable icon; public NamedFile (File file) { f = file; name = f.getName(); if (f.isFile()) { if (name.indexOf(‘.’) != -1) { ext = name.substring(name.lastIndexOf(‘.’) + 1).trim().toLowerCase(); } else { ext = “unknown”; } } path = […]

使用JSch执行的命令与SSH终端的行为不同(绕过确认提示消息“是/”否“)

注意:我登录设备而不是计算机,因此我登录配置模式(而不是非配置模式)。 我在Java中使用JSch库,使用SSH协议登录。 我这样登录: channel = con.openChannel(“shell”); channel.connect(); 在某些情况下,当我通过shell发送需要su (配置模式)权限(更改配置)的命令时,此代码会绕过提示确认消息 – 这可能会阻止其他用户更改配置。 如果我使用SSH客户端/终端手动输入命令,我必须输入yes进行确认。 有谁知道为什么? 谢谢。 [ ] 当我通过JSch登录时,我甚至可以执行配置命令,当我没有向要执行的命令数组插入“是”时。

为什么在计算表达式时将byte和short值提升为int

我想知道每当计算表达式或处理逐位操作时, byte和short值都被提升为int的原因是什么?

java.awt.Color.getColor(String colorName)如何工作?

我试图通过名称获取颜色,我遇到了在Java中将字符串转换为颜色 ,这建议使用java.awt.getColor 。 我无法确定将其作为字符串传递的内容。 下列 System.out.println( java.awt.Color.getColor( “black”, Color.red ) ); 打印出来 java.awt.Color中[R = 255,G = 0,B = 0] 即它在那里使用默认颜色。 我把它放在一个文本框中,并尝试了替代资本等。这里的文档不是很有帮助。 任何人都可以建议放入什么神奇的字符串?

从数组中删除所有零

我有一个数组: [0, 5, 6, 0, 0, 2, 5] 我想从中删除所有零,以便返回(保持相同的顺序): [5, 6, 2, 5] 是否有更简单的方法来删除全部为零而不是以下? int[] array = {0, 5, 6, 0, 0, 2, 5}; int len = 0; for (int i=0; i<array.length; i++){ if (array[i] != 0) len++; } int [] newArray = new int[len]; for (int i=0, j=0; i<array.length; i++){ if (array[i] != 0) […]

图形上下文在第一次绘制时未对齐

我一直在为另一个问题找到答案,并遇到了一个我以前从未见过的奇怪问题…… 基本上,程序使用AffineTransform来提供Graphics元素的翻译,缩放和旋转,简单的东西,之前完成了一千次 问题是,当屏幕第一次出现时,输出不是应该的位置,但是一旦我触摸其中一个控件(调整其中一个幻灯片),它就会跳到正确的位置。 根据屏幕截图, Graphics内容似乎被其他控件的数量错位。 如果我从GUI中删除控件,它将出现在正确的位置(中间)。 如果我调整窗口大小,它不能解决问题,它只会在其中一个滑块触发DrawPane上的repaint时DrawPane … 我已经在输出中添加了诊断信息,并且所有值都是相同的 – 也就是说,它们在程序首次启动时以及将所有滑块值调整为初始值时打印相同的值。 如果我从AffineTransform删除setRotation和setScale调用,则不会修复它。 如果我删除了setTranslation ,那么在面板更新之前,方块最初不会被绘制(它在屏幕外绘制) 如果我使用Graphics2D g2d = (Graphics)g; 而不是g.create() ,相同的结果(是的,我在paintComponent方法退出之前重置了转换;)) import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.EventQueue; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.geom.AffineTransform; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JSlider; import javax.swing.SwingConstants; import javax.swing.SwingUtilities; import javax.swing.UIManager; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public […]

Java Crosstab – preparedstatement查询

我有一个典型的交叉表查询与静态参数。 它适用于createStatement。 我想使用preparestatement来查询。 String query = “SELECT * FROM crosstab( ‘SELECT rowid, a_name, value FROM test WHERE a_name = ”att2” OR a_name = ”att3” ORDER BY 1,2’ ) AS ct(row_name text, category_1 text, category_2 text, category_3 text);”; PreparedStatement stat = conn.prepareStatement(query); ResultSet rs = stat.getResultSet(); stat.executeQuery(query); rs = stat.getResultSet(); while (rs.next()) { //TODO } 但它似乎没有用。 […]

Gson,如何反序列化数组或空字符串

我试图将此json反序列化为对象数组: [{ “name”: “item 1”, “tags”: [“tag1”] }, { “name”: “item 2”, “tags”: [“tag1″,”tag2”] }, { “name”: “item 3”, “tags”: [] }, { “name”: “item 4”, “tags”: “” }] 我的java类看起来像这样: public class MyObject { @Expose private String name; @Expose private List tags = new ArrayList(); } 问题是json的tags属性,它可以只是空字符串或数组。 现在gson给了我错误: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was STRING […]

JComboBox更改下拉弹出窗口

基本上是在其派生的JTextField下面显示的JComboBox的弹出窗口,如何改变JComboBox弹出窗口的方向,并在顶部/上方显示JComboBox的弹出窗口 编辑:基本JComboBox的代码示例 import java.awt.Dimension; import javax.swing.*; import javax.swing.plaf.basic.BasicComboBoxRenderer; public class HighRowCombo { public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new HighRowCombo().makeUI(); } }); } public void makeUI() { Object[] data = {“One”, “Two with text”, “Three with long text, with long text,with long text “}; JComboBox comboBox = […]

在1个JPanel中绘制2个图像

我想绘制两个JScrollPanes之间的线条(左侧第一个滚动窗格,右侧第二个)。 这些JScrollPanes包含图像。 我想在这两个图像之间画线(使用一些图层,使用一些技巧等)。 我尝试了不同的方式,但我失败了。 可能吗? (如果没有,我将不得不在一个JScrollPane制作2个图像,这将不太好)。 编辑 我想绘制两个图像 – 通过组件 – 从图像中获取一些点并在它们之间绘制线条。 我为糟糕的问题道歉。