Tag: swing

Java / Swing:低调的button高度?

我想减less一个JButton的垂直大小。 下面的代码适用于K> 1,但似乎无法缩小大小。 有什么build议么? JButton button = /* … get button here … */ Dimension d = button.getPreferredSize(); d.setSize(d.getWidth(), d.getHeight()*K); button.setPreferredSize(d); 编辑:我正在使用JavaBuilders + MigLayout。 它看起来像我必须做button.setMaxSize(d); 而不是setPreferredSize(),不知道为什么。

调整图标以适应Java中的JButton?

每当我为JButton设置一个图标时,它的大小总是不正确。 我怎样才能调整图标,以适应button完全? final JButton btnSanic = new JButton(); Image img = icon.getImage(); Image newimg = img.getScaledInstance(width, height, java.awt.Image.SCALE_SMOOTH); icon = new ImageIcon(newimg); btnSanic.setIcon(icon);

Java,将单元格内容更改为同一行中另一个单元格的function

我需要一些帮助解决我的问题。 我有一个表,例如一个双列和一个string列。 如果双列中的值是负数,则string应该是“negativ”。 而另一种方式,如果价值是积极的,string应该是“positiv”。 现在的问题是,如果我编辑jTable中的double值,该string也应该更新。 更新我的问题,实际的代码看起来像这样:但它不起作用,因为在我编辑第一列值后,第二列中的string将不会更新。 只有在我第一次启动程序时才有效。 import java.util.Vector; import javax.swing.*; import javax.swing.event.TableModelEvent; import javax.swing.event.TableModelListener; import javax.swing.table.*; public class ExampleRemoveAddRows extends JFrame { private Object[] columnNames = {"Double", "positiv / negativ"}; private Object[][] data = { {new Double(10.0), "positiv"}, {new Double(-10.0), "negativ"}, {new Double(20.0), "positiv"}, {new Double(-30.0), "negativ"} }; private JTable table; private DefaultTableModel model; […]

弹簧行为模拟

基本上,我想模拟绘画图像上的弹簧行为。 我想让它通过几次迭代运行(比如固定在一个弹簧上)。 我在网上find的所有例子都会导致这个类 – FloatSpring.java 它应该提供所需的计算来将点A移动到点B,并使用类似弹簧的效果,这取决于各种FloatSpring类的设置。 问题是,我没有find一个明确的例子,如何正确使用它。 我做了这个小例子来testingFloatSpring : public static void main ( String[] args ) { // Some image to bounce final ImageIcon icon = new ImageIcon ( WebProgressOverlayExample.class.getResource ( "icons/ava1.jpg" ) ); // Component to paint image on JComponent spring = new JComponent () { // Zoom value (1f = 100% = […]

如果由recursion函数调用paintComponent不起作用?

我想要看到所有的积分 ,但是我只能看到1分。 我改变了什么看到所有的点 ? 在System.out您可以看到10次“设置”,然后2次“paintComponent”。 我应该改变什么,每次设置后调用它改变“paintComponente”? ================================================== ================================ public class exampe extends JPanel { int x; int y; public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D) g; g2.fillOval(x-2,y-2,4,4); System.out.println("paintComponent"); } public void set(int X, int Y) { x = X; y = Y; System.out.println("set"); super.repaint(); } public static void main(String args[]) { int […]

Java – 如何挂钩到Mac OS上的复制和粘贴菜单

我明白你可以: // Where CustomMacOSXController implements implements MRJAboutHandler, … CustomMacOSXController macOSXController = new CustomMacOSXController() MRJApplicationUtils.registerAboutHandler(macOSXController); MRJApplicationUtils.registerPrefsHandler(macOSXController); //… and so on 然而,我找不到任何东西来钩住复制和粘贴菜单,所以当它被调用时,当前select的JTextField将受到影响(例如,粘贴将剪贴板粘贴到选定的JTextField中。

JTable getSelectedRow不返回选定的行索引

我尝试获取所选行的数据,但getSelectedRow()不起作用。 实际上,我在另一个class里使用了这个方法,但是在那里工作。 当我尝试打印行索引时; 提示符显示-1; 因为没有select。 我尝试了大多数在互联网上的解决scheme,但他们并没有解决我的解决scheme。 public Canteen() { try { jbInit(); } catch (Exception e) { e.printStackTrace(); } } private void jbInit() throws Exception { this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.getContentPane().setLayout( null ); this.setSize( new Dimension(400, 300) ); this.setTitle( "CANTEEN" ); jScrollPane1.setBounds(new Rectangle(0, 0, 230, 235)); jButton1.setText("REFRESH"); jButton1.setBounds(new Rectangle(0, 235, 100, 20)); jButton1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent […]

如何在java中使用JSlider增加/减less图像的亮度?

我使用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(); […]

JTree如何显示文件名?

在我的项目中,我正在尝试添加文件资源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 { /** […]

绘制一个组件到BufferedImage导致显示损坏

我正在使用这里描述的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 = […]