任何人都可以解释为什么在最后一行,br不被认为是variables? 我甚至尝试在try clause中设置br,将其设置为final等。这与Java不支持closures有什么关系? 我99%相信类似的代码将在C#中工作。 private void loadCommands(String fileName) { try { final BufferedReader br = new BufferedReader(new FileReader(fileName)); while (br.ready()) { actionList.add(CommandFactory.GetCommandFromText(this, br.readLine())); } } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (br != null) br.close(); //<– This gives error. It doesn't // know the br variable. […]
我正在Java中制作一个简单的animation,我正在尽可能地使它变得stream畅。 我只使用每个Shape对象的* .Double内部类,并在Graphics2D对象上设置抗锯齿。 只要我只使用fill()方法,但是如果我也使用draw()方法在同一个Shape的周围绘制线条,这一切都可以工作,这些线条的animation是逐个像素的。 canvas上的每个矩形都具有此方法来绘制自己。 它每隔20ms移动一次,整个canvas使用Timer和TimerListener重新绘制。 import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class AnimationTest { public static void main(String[] args) { JFrame frm = new JFrame("Test"); frm.setBounds(200, 200, 400, 400); frm.setResizable(false); frm.setLocationRelativeTo(null); AnimationCanvas a = new AnimationCanvas(); frm.add(a); frm.setVisible(true); a.startAnimation(); } } class AnimationCanvas extends JPanel { SimpleSquare[] squares = new SimpleSquare[2]; […]
我的问题是,我不明白swingworker是如何工作的,因为我正在做的是使fa=worker.get()因为我有一个很长的方法,计算很多点在后台运行,因为我不'我想冻结我的界面,我想让她的结果来绘制组件图像。 但是,我不明白它在哪里去,当我做fa=worker.get()因为我的控制台打印"titi" ,我把很多其他打印看到程序的下一部分到达,但没有人打印。 请帮助我知道在get()或执行它之后编译的位置,以及如果您对如何实现我所需要的每个代码块有所了解,欢迎。 public void paintComponent(final Graphics g1){ // TODO Auto-generated method stub final int width=getWidth(); final int height=getHeight(); image= new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); //On transforme le rectangle de base en un rectangle qui a le meme ratio que le cadre contenant l'ancien //(Il yaura dessus la meme fractale mais avec plus de fond noir) afin […]
这是这个问题的后续问题 。 会发生什么是以下几点: 当我启动图表并拖动图表时,发生了一些奇怪的事情:在一定的时间间隔内,似乎每隔7个时期,烛台就越来越小,直到它们只是一个条纹。 然后,当我拖得更远时,又变得更粗,直到它们再次变成正常大小。 这似乎每7个时期就会发生一次。 这种现象的一个例子显示在以下3张照片上: 下面的代码将显示我的意思。 只需编译并运行它。 然后按住CTRL ,并用鼠标在graphics上单击并按住。 现在尝试将graphics拖动到右侧或左侧。 经过一定的“拖拉距离”后,你会发现这个错误。 我的问题:如何防止/解决这个问题? 码: import org.jfree.chart.*; import org.jfree.chart.axis.*; import org.jfree.chart.plot.XYPlot; import org.jfree.chart.renderer.xy.CandlestickRenderer; import org.jfree.data.xy.*; import javax.swing.*; import java.awt.*; import java.io.*; import java.net.URL; import java.text.*; import java.util.*; import java.util.List; public class CandlestickDemo2 extends JFrame { public CandlestickDemo2(String stockSymbol) { super("CandlestickDemo"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); DateAxis domainAxis = new […]
每次查询之后是否需要closures并在每个查询的开始时进行初始化?
我可以从JSP文件中调用一个servlet而不使用HTML表单吗? 例如,在页面加载期间显示HTML表格中数据库的结果。
我启发了MeBigFatGuy有趣的问题 ,在这个连接我有非常具体的问题关于Graphisc2D ,如何改变BackGround Color依赖如果JViewPort可见, 1)如果1st. & last JTables Row 1st. & last JTables Row的JViewPort在JViewPort可见,然后BackGround将被着色为Color.red 2)如果1st. & last JTables Row 1st. & last JTables Row JViewPort BackGround不会在JViewPort可见,那么BackGround将被着色为Color.whatever 来自SSCCE import java.awt.*; import java.awt.event.ActionEvent; import java.awt.image.BufferedImage; import javax.swing.*; import javax.swing.RepaintManager; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.table.TableModel; /* https://stackoverflow.com/questions/1249278/ how-to-disable-the-default-painting-behaviour-of-wheel-scroll-event-on-jscrollpan * and * https://stackoverflow.com/questions/8195959/ swing-jtable-event-when-row-is-visible-or-when-scrolled-to-the-bottom */ public class ViewPortFlickering […]
我试图制作一个小游戏,首先向玩家展示一个简单的login屏幕,在这里他们可以input他们的名字(我稍后需要它来存储他们的游戏状态信息),让他们select难度等级,一旦玩家点击播放button就显示主游戏画面。 我也想让玩家导航到(有希望他们相当大)奖杯收集,同样在他们看来是一个新的屏幕。 到目前为止,我有一个主要的游戏窗口,其中有一个网格布局和一个游戏的作品(对我来说耶!)。 现在我想添加上面的function。 我怎么去做这个? 我不认为我想要去多个JFrame路线,因为我只想一次在任务栏中显示一个图标(或者将它们的可见性设置为false也会影响图标?)我是否要制作和销毁布局或面板或这样的事情? 我有什么select? 我怎样才能控制显示的内容? 特别是考虑到我的新手技能?
我已经testing了Java 8 lambdaexpression式和stream的max()函数,并且似乎在max()被执行的情况下,即使多于一个对象比较为0,它也会返回绑定候选中的任意元素进一步考虑。 是否有一个明显的技巧或function,这样一个最大期望的行为,以便所有的最大值返回? 我没有看到API中的任何内容,但我相信它必须比手动比较更好。 例如: //myComparator is an IntegerComparator Stream.of(1,3,5,3,2,3,5).max(myComparator).forEach(System.out::println); //Would print 5,5 in any order.
假设我有这样的一个类: public class MyClass { Dao dao; public String myMethod(Dao d) { dao = d; String result = dao.query(); return result; } } 我想用mockito来testing它。 所以我创build一个模拟对象,然后我调用这个方法来testing: Dao mock = Mockito.mock(Dao.class); Mockito.when(mock.myMethod()).thenReturn("ok"); new MyClass().myMethod(mock); 但是,假设我有这样一个class级: public class MyClass { Dao dao = new Dao(); public String myMethod() { String result = dao.query(); return result; } } 现在我不能把我的模拟作为一个论点,所以我要如何testing我的方法? […]