Tag: java

如何从另一个线程中暂停和恢复Java线程

我正在用Java Swing编写一个应用程序。 我需要的是一个程序,我可以使用graphics界面中的button来停止“精化”线程。 这里有一个简单的项目,侧重于我所需要的 import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JTextArea; /* * To change this template, choose Tools | Templates * and open the template in the editor. */ /** * * @author Nikola */ public class Main extends javax.swing.JFrame { private MyThread THREAD; public Main() { initComponents(); } @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> […]

使用堆栈进行洪水填充

我在Java中使用recursionFlood填充algorithm来填充图像的某些区域。 对于非常小的图像,它可以正常工作,但是当图像变大时,JVM会给我一个堆栈溢出错误。 这就是为什么我必须用自己的堆栈使用洪水填充来重新实现该方法的原因。 (我读过这是在这种情况下做到这一点的最好方法) 任何人都可以解释我如何编码? (如果你手边没有代码,那么algorithm的伪代码就可以) 我在互联网上阅读了很多,但是我还没有很好的理解。 编辑:我添加了我的recursion代码 public void floodFill(int x, int y, Color targetColor,Color replacementColor) { if (img.getRGB(x, y) != targetColor.getRGB()) return; img.setRGB(x, y, replacementColor.getRGB()); floodFill(x – 1, y, targetColor, replacementColor); floodFill(x + 1, y, targetColor, replacementColor); floodFill(x, y – 1, targetColor, replacementColor); floodFill(x, y + 1, targetColor, replacementColor); return; } 谢谢!

使用JasperReports和相对path

我有一个networking应用程序,客户已经请求看到一些报告。 方法是使用iReport并在屏幕上向他们显示报告。 我已经问过这样的事情了 。 但是今天我发现报告文件(jrxml)的path是绝对的。 所以我必须改变程序,所以它接受相对path。 我一直在尝试这样做,但似乎jrxml或编译(.jasper)文件都不接受相对path既不编译也不填充报告。 这是我得到这个目标: //path is generated as request.getContextPath() + "/jrxmlFiles/" public void generateReport(HttpServletResponse res, ConexionAdmin con, String path) throws Exception{ ServletOutputStream out = null; ByteArrayOutputStream bos = new ByteArrayOutputStream(); JasperDesign jasperDesign = JRXmlLoader.load(path); JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign); byte[] bytes = JasperRunManager.runReportToPdf(jasperReport, pars, con.initConexion()); res.setContentType("application/pdf"); res.setContentLength(bytes.length); out = res.getOutputStream(); out.write(bytes, 0, […]

Java,通过值,引用variables

在下面的例子中,我对理解Java的“传值”行为有一个问题: public class Numbers { static int[] s_ccc = {7}; static int[] t_ccc = {7}; public static void calculate(int[] b, int[] c) { System.out.println("s_ccc[0] = " + s_ccc[0]); // 7 System.out.println("t_ccc[0] = " + t_ccc[0]); // 7 b[0] = b[0] + 9; System.out.println("\nb[0] = " + b[0]); // 16 c = b; System.out.println("c[0] = " […]

如果使用java满足某些条件,如何设置颜色到某一行?

我有一个Jtable。 (tablesummary)。 其中一列是EXPIRY。 我想突出显示与当前date已失效的客户端的行。 我已经得到了逻辑,但我不能使行变成红色或任何其他颜色。 这是我的代码: int count = (tableSummary.getRowCount()); NumberFormat formatter = new DecimalFormat("###,###"); String no = formatter.format(count); txtNo.setText(no); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); Calendar cal = Calendar.getInstance(); String expDateString = sdf.format(cal.getTime()).toString(); for(int i=0; i<=tableSummary.getRowCount()-1; i++){ String nnn= tableSummary.getModel().getValueAt(i, 6).toString(); System.out.println(nnn); int res = nnn.compareTo(expDateString); if(res>=0){ System.out.println("if ni " + (res>=0)); } else{ System.out.println("else […]

removeAll在下次validation时不会删除?

有人可以解释为什么以下不能如我所料? 按下button'should'将导致只包含(空的)JScrollPane的显示,即input栏和button应该消失。 然而,他们留下来,直到组件被resize… public static void main(String[] args) { JFrame frame = new JFrame("test"); frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); final JPanel panel = new JPanel(); Container cp = frame.getContentPane(); cp.setLayout(new FlowLayout()); cp.add(new JScrollPane(panel)); Component textField = new JTextField("i am input"); JButton button = new JButton(new AbstractAction("i am pressy") { @Override public void actionPerformed(ActionEvent e) { // this is already […]

如何更改JTabbedPane的背景颜色?

我知道你可以修改LaF的属性 ,但是你怎样才能做到这一点? 我只问,因为setBackground似乎没有做到这一点。 请注意,我正在更改以下属性: TabbedPane.background (或TabbedPane.contentAreaColor ?) TabbedPane.tabAreaBackground

如何在System.in上使用多个Scanner对象?

什么是在我的程序中使用多个扫描仪对象的正确方法。 例如,我使用扫描仪读取文件,然后根据文件中find的内容,我再次使用扫描仪提示用户input。 显示我的代码的摘录 …. Scanner f = new Scanner (System.in); //get the file name String fileName = f.next(); Scanner input = new Scanner( new File( fileName ) ); while ( input.hasNext() ) { String currentLine = input.nextLine(); if ( some pattern found) { Scanner getUserInput = new Scanner (System.in); String userInput = getUserInput.next(); ….. } […]

将自定义对象从JList拖放到JLabel中

我有一个JList包含自定义对象的ArrayList,我试图创build一个拖放到字段。 我无法理解如何在Transferable中打包和接收对象。 这是关于我已经得到的: import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import java.util.*; public class FlightProjectInterface extends JFrame{ //create GUI Objects private JFrame primaryFrame; private JPanel createFlightPanel; private JPanel aircraftLayout; private JList personsJList, personsOnFlightJList; private JTextField pilotLabel, coPilotLabel, backseat1Label, backseat2Label; public FlightProjectInterface(){ //establish frame super("Create Flight"); setLayout( new FlowLayout()); //aircraftPanel aircraftLayout = new JPanel(); aircraftLayout.setLayout(new […]

用于MATLAB的Java JPA类

我在Windows XP Pro SP3上使用MATLAB R2007b,Java 1.6 SE,Eclipse Helios和MySql 5。 我试图创build一个使用JPA注释来访问MySql 5数据库的类库。 这个想法是,MATLAB脚本实例化这些Java对象,这些对象提供了访问数据库的API。 我可以创build我在Eclipse中工作的注释类(即JUnittesting)。 我可以将代码导出到jar,我可以从命令提示符运行。 我使用javaaddpath()更新MATLAB Java类path。 我可以在MATLAB中实例化我的类。 但是,当我调用我的init(),调用javax.persistence.Persistence.createEntityManagerFactory(),我得到了可怕的 “没有EntityManager的持久性提供者” 这个错误通常意味着persistence.xml文件不在正确的位置。 但是这一定是因为我的jar是从命令行工作的。 将META-INF文件夹添加到MATLAB java类path没有帮助。 也不提取jar并将提取的文件夹结构添加到classpath,无论是否添加了META-INF。 有没有人有任何想法,坚果或不? 有没有人曾经在任何版本的MATLAB中做过这个。 谢谢。 -reilly。