我使用java swing技术在netbeans平台上制作应用程序。我想对图像进行image processing。这个图像是由X射线枪捕获的。之后,我想使用JSlider来增加/减less图像的亮度。我使用paintComponent (Graphics g)方法。 但我想做的直接影响增加/减less图像brightnees而不使用paintComponenet(Graphics g)method.so我怎么能做到这一点? 我的代码如下所示。 在我的代码中,我使用JAI库的PlanarImage和BufferedImage类来加载.tiff图像,然后使用JSlider对象的statechange事件来增加/减less图像的亮度。 enter code here import java.awt.BorderLayout; import java.awt.Graphics; import java.awt.image.BufferedImage; import java.awt.image.RescaleOp; import javax.media.jai.JAI; import javax.media.jai.PlanarImage; import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public class Main extends JPanel implements ChangeListener { RescaleOp op; PlanarImage image = JAI.create("fileload", "F:\\java\\aimages\\teeth1.tiff"); BufferedImage bufferedImage = image.getAsBufferedImage(); BufferedImage bImage; int x1 = bufferedImage.getWidth(); […]
好,所以我一直在研究这个代码,显示了sortingalgorithm是如何工作的。 现在我有它在同一sorting多个图表sorting的工作,但我需要每个图表在同一时间做不同的sorting。 我一直在研究和试图解决这个问题,现在我只是拥有隧道视野。 我会发布我的代码,以防我的解释混乱。 我觉得这可能会使很多使用javagraphics的人受益,任何帮助都将不胜感激。 import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.util.Random; import java.util.StringTokenizer; import java.util.Scanner; public class Sort extends Applet { /** Constructor. Only for starting the sorting animation as applet. */ public Sort() {} /** For starting the sorting animation as application. */ public static void main(String[] argv) { Frame _aFrame = […]
在我的项目中,我正在尝试添加文件资源pipe理器,以便用户可以从给定目录中select文件。 我想限制这个视图到项目的根文件夹(由用户决定)。 这与Eclipses Package Explorer非常相似,因为“工作空间”是由用户决定的。 目前文件不显示完整的path(从C :)这是我想要的,但所有的文件夹显示完整的path(我不想要的,我只是想要的文件夹名称)。 那么JTree如何显示这些名字呢? 我已经看到JTree使用File.tostring()方法,但是当我实现自己的文件并覆盖toString方法时,没有任何改变。 这是我的代码: import java.awt.BorderLayout; import java.io.File; import javax.swing.JFileChooser; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTree; import javax.swing.event.TreeModelListener; import javax.swing.tree.TreeModel; import javax.swing.tree.TreePath; import java.awt.Color; import java.awt.Container; import java.awt.Dimension; import java.util.Collections; import java.util.Vector; import javax.swing.BoxLayout; import javax.swing.JFrame; import javax.swing.event.TreeSelectionEvent; import javax.swing.event.TreeSelectionListener; import javax.swing.tree.DefaultMutableTreeNode; public class pnl_fileView extends JPanel { /** […]
在使用Hibernate和MySQL的Spring MVC应用程序中,我有一个抽象超类BaseEntity ,它pipe理模型中所有其他实体的ID的值。 id字段使用@GeneratedValue 。 每当我的代码尝试保存任何扩展BaseEntity的子类时,都遇到问题。 问题出现在@GeneratedValue的GenerationType的select上。 在我的代码中BaseEntity一个子类试图保存到底层MySQL数据库的每一个地方,我得到以下错误: ERROR SqlExceptionHelper – Table 'docbd.hibernate_sequences' doesn't exist 我已经阅读了许多关于这个在谷歌上的post,但是他们要么处理其他数据库(不是MySQL),要么处理抽象的超类。 我不能通过使用GenerationType.IDENTITY来解决问题,因为我正在使用抽象超类来pipe理模型中所有实体的id字段。 同样,我不能使用GenerationType.SEQUENCE因为MySQL不支持序列。 那么我该如何解决这个问题呢? 这里是BaseEntity.java的代码: @Entity @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) public abstract class BaseEntity { @Id @GeneratedValue(strategy = GenerationType.TABLE) protected Integer id; public void setId(Integer id) {this.id = id;} public Integer getId() {return id;} public boolean isNew() {return (this.id == null);} […]
我正在使用这里描述的JScrollNavigator组件,以便将一个导航窗口提供到一个embeddedJScrollPane的大型“canvas”CAD组件。 我试图使用JScrollNavigator绘制canvas的缩略图来为用户提供一些额外的上下文。 但是,这样做的行为会导致我的应用程序主框架的渲染被破坏。 具体来说,它是在视口组件(即我的主canvaspaint(Graphics)上调用paint(Graphics)的动作,传递由BufferedImage创build的Graphics对象,导致后续的显示损坏; 如果我评论这一行,一切工作正常。 下面是JScrollNavigator的重写paintComponent方法: @Override protected void paintComponent(Graphics g) { Component view = jScrollPane.getViewport().getView(); BufferedImage img = new BufferedImage(view.getWidth(), view.getHeight(), BufferedImage.TYPE_INT_ARGB); Graphics2D g2d = img.createGraphics(); // Paint JScrollPane view to off-screen image and then scale. // It is this action that causes the display corruption! view.paint(g2d); g2d.drawImage(img, 0, 0, null); Image scaled = […]
我试图创build一个hang子手游戏,到目前为止它已经很棒了,但布局devise似乎并没有落到位! 字母表应该在Hangman图片的顶部以FlowLayout顺序结束,底部有“重新启动”,“帮助”,“添加新字”和“退出”button! 我究竟做错了什么? import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.io.*; public class Hangman extends JFrame { int i = 0; static JPanel panel; static JPanel panel2; static JPanel panel3; public Hangman() { JButton[] buttons = new JButton[26]; panel = new JPanel(new FlowLayout()); panel2 = new JPanel(); panel3 = new JPanel(); JButton btnRestart = new […]
我试图从文本文件中删除一行文本而不复制到临时文件。 我试图通过使用Printwriter和扫描仪,并让他们在同一时间遍历文件,作家写什么扫描仪读取和覆盖每一行相同的东西,直到它到达我想要的行删除。 然后,我推进扫描仪,但不是作家,并继续像以前一样。 这里是代码: 但首先,参数:我的文件名是数字,所以这将读取1.txt或2.txt等,所以f指定的文件名。 我将它转换为一个文件的构造函数中的string。 Int n是我想要删除的行的索引。 public void deleteLine(int f, int n){ try{ Scanner reader = new Scanner(new File(f+".txt")); PrintWriter writer = new PrintWriter(new FileWriter(new File(f+".txt")),false); for(int w=0; w<n; w++) writer.write(reader.nextLine()); reader.nextLine(); while(reader.hasNextLine()) writer.write(reader.nextLine()); } catch(Exception e){ System.err.println("Enjoy the stack trace!"); e.printStackTrace(); } } 它给了我奇怪的错误。 它在堆栈跟踪中显示“NoSuchElementException”和“no line found”。 它指向不同的路线; nextLine()调用似乎可以做到这一点。 是否可以删除一条线? 如果是这样,我做错了什么? 如果没有,为什么? […]
我在互联网上看到添加一行到TableView的例子,例如在Oracle文档中使用Person类。 但是我有一个可变数量的列,所以我不能绑定到一个Person(或任何其他)的bean业务对象。 Oracle示例继续展示如何将列绑定到属性名称,但为此,它只显示如何添加列,但不显示行。 我的问题是,有人可以指向一个dynamic添加任意列和/或行到JavaFX 8 TableView的Hello,World示例吗?
我正在使用Java Preferences API在swing / java应用程序中存储和检索小部分信息。 现在我已经安装了Java Web开始从我的网页启动应用程序,我得到一个安全exception。 为了摆脱这个exception,我不得不提示用户的权限。 而我拒绝这样做,因为我的应用程序没有其他任何需要用户的许可。 这就是为什么我需要一个替代解决scheme来存储从一个执行到另一个执行几个关键的价值。 某种types的cookie或其他。 你知道吗?
我想parsingstring( YYYY-MM-dd HH:mm )到date,但是得到错误的date比预期。 码: Date newDate = null; String dateTime = "2013-03-18 08:30"; SimpleDateFormat df = new SimpleDateFormat("YYYY-MM-dd HH:mm", Locale.ENGLISH); df.setLenient(false); try { newDate = df.parse(dateTime); } catch (ParseException e) { throw new InvalidInputException("Invalid date input."); } 生产date:2012年12月30日08:30 08:30(错误) 我尝试设置Lenientclosures,但没有运气。 感谢你的帮助。 更新 感谢Sudhanshu的答案,它帮助我解决了Java转换。 当我把上面的代码的返回dateinput到数据库中时,我得到的date是正确的,但时间总是是00:00。 ps.setDate(3, new java.sql.Date(app.getDate().getTime()));