Tag: swing

EventListenerList触发顺序

在Swing应用程序中,我有许多子面板,每个子面板都监听一个JSlider 。 周围的父面板也会监听所有子面板。 为了在下面的示例中获得一致的结果,我必须首先添加父项, 然后添加本地侦听器。 考虑到EventListenerList规定的顺序并在本文中进行了解释,这是有道理的。 我可以依赖该订单,还是应该安排发送不同的活动? class SubPanel extends JPanel implements ChangeListener { private final JSlider slider = new JSlider(); private final JLabel label = new JLabel(); private final String name; private float value; public SubPanel(String name, float value, ChangeListener parent) { this.name = name; this.value = value; … slider.addChangeListener(parent); slider.addChangeListener(this); } … } […]

在JTable中更改一个单元格的背景颜色

可能重复: 更改Swing JTable单元格颜色 我开发了一个显示JTable的swing应用程序。 我希望当用户修改单元格值时,单元格修改了更改颜色。 这是我在用户修改单元格时运行的代码: this.myTable.getColumnModel().getColumn(column).setCellRenderer(new StatusColumnCellRenderer()); 这是我的单元格Render类的代码: public class StatusColumnCellRenderer extends DefaultTableCellRenderer { @Override public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int col) { //Cells are by default rendered as a JLabel. JLabel l = (JLabel) super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, col); //Get the status for the current […]

使用Java中的Swing在GUI开发中正确实现MVC模式

首先,我来自MVC的一个很大的PHP背景,当我开始使用PHP时,我浏览了很多次,尽我所能并在PHP中完善我的MVC-Like设计。 很多人都回答了很多帮助我的答案。 但是在Swing中开始GUI开发之后,关于Swing中MVC的答案是完全不同的。 例如,模型也是一种观点? 根据Oracle的建议, TextElementModel在这里没有任何逻辑业务,它所做的只是标记(设置颜色等)和设置数据,如设置文本等。 当我用PHP开发时,没有AbstractModel这样的东西,因为我总是被告知模型不是一个类,或者更多,它是一个处理逻辑业务的整个层。 在PHP中,我使用了服务,数据映射器和域对象,这个惊人的答案提示我在PHP中帮助了我: 如何在MVC中构建模型? 我的尝试 再次阅读之后,我想在Java中做一个类似的事情: 我有ControllerContainer创建所有控制器: public class ControllerContainer { private JFrame frame; public ControllerContainer(JFrame rune) { this.frame = frame; } public void initControllers() { Atest test = new Atest(frame); test.registerView(“test”, new ViewTest(test)); } } 如您所见,我将带有ViewTest实例的名为“test”的视图添加到控制器,现在它将在框架中可见,并且可以接受输入。 我的Controller类,应该是抽象的,但我还没有把它抽象化: public class Controller { private JFrame frame; private Map views = new […]

使用Java中的hibernate从数据库填充combobox

Heyy; 我正在使用java中的hibernate开发一个基于swing的小应用程序。 我想从数据库coloumn填充combobox。 我怎么能这样做? 而且我不知道我需要在哪里(在initComponents下, buttonActionPerformd )。 为了使用jbutton保存我,它的代码在这里: private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { int idd=Integer.parseInt(jTextField1.getText()); String name=jTextField2.getText(); String description=jTextField3.getText(); Session session = null; SessionFactory sessionFactory = new Configuration().configure() .buildSessionFactory(); session = sessionFactory.openSession(); Transaction transaction = session.getTransaction(); try { ContactGroup con = new ContactGroup(); con.setId(idd); con.setGroupName(name); con.setGroupDescription(description); transaction.begin(); session.save(con); transaction.commit(); } catch (Exception e) { e.printStackTrace(); […]

如何在JTable单元中单击JButton?

我有一个带有自定义单元格渲染器的JTable。 该单元格是一个包含JTextField和JButton的JPanel。 JTextField包含一个整数,当用户单击JButton时,应该增加整数。 问题是当我在JTable单元格中使用它时,无法单击JButton。 如何使其可点击? 这是我的测试代码: public class ActiveTable extends JFrame { public ActiveTable() { RecordModel model = new RecordModel(); model.addRecord(new Record()); JTable table = new JTable(model); EditorAndRenderer editorAndRenderer = new EditorAndRenderer(); table.setDefaultRenderer(Object.class, editorAndRenderer); table.setDefaultEditor(Object.class, editorAndRenderer); table.setRowHeight(38); add(new JScrollPane(table)); setPreferredSize(new Dimension(600, 400)); pack(); setDefaultCloseOperation(EXIT_ON_CLOSE); setTitle(“Active Table”); setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(new […]

如何使用数据库填充JTable中的数据?

我想显示一个JTable,它按原样显示DataBase表中的数据。 到目前为止,我已经使用了JTable来显示来自Object [] []的数据。 我知道显示数据的一种方法是首先将数据库表转换为Object [] []但是还有其他任何容易但更强大和灵活的方法。

如何在JTABLE swing中添加复选框

有谁知道如何将JCheckBox放在JTable列中? 像这样的东西: 我从如何使用表中获取了这个 提前致谢。

CubicCurve2D连接两个JInternalFrame实例

我一直试图找到一种方法(在Swing中)将两个JInternalFrame连接到CubicCurve2D (也称为三次贝塞尔曲线)。 我试图实现的整体效果是类似于Yahoo!的界面。 管道 (曲线应从一个内部框架的底部到另一个内部框架的顶部)。 这里有人这么做过吗? 我遇到的问题是我无法想象如何以用户可见的方式绘制更新曲线。 绘制并重新绘制JDesktopPane.getGraphics似乎没有做任何事情。 如果可能的话,我想使用屏幕外缓冲区。

JFrame中只显示一个组件

作为我加密项目的改进,我决定制作一个小GUI。 但是,当我运行程序时,只有顶部元素出现在屏幕上,它似乎模糊了其他元素,尽管我无法检查。 有谁知道为什么? 除了e()和d()之外,下面是我的全部代码,因为它们只是加密一个字符串而与GUI无关。 我还希望能够在不编辑加密的情况下尽可能加快速度,以使其尽可能好。 @SuppressWarnings(“serial”) public class EncDecExample extends JFrame implements ActionListener { final static JPanel top = new JPanel(); final static JPanel mid = new JPanel(); final static JPanel bot = new JPanel(); final static JTextField in = new JTextField(10); final static JTextField out = new JTextField(10); final static JButton enc = new […]

Java KeyListener未注册箭头键

我正在用Java编写一个简单的程序,其中包含一个KeyListener,其中包含以下覆盖它们的KeyTyped方法: @Override public void keyTyped(KeyEvent e) { int key = e.getKeyCode(); System.out.println(“TEST”); if (key == KeyEvent.VK_KP_LEFT || key == KeyEvent.VK_LEFT) { System.out.println(“LEFT”); //Call some function } else if (key == KeyEvent.VK_KP_RIGHT || key == KeyEvent.VK_RIGHT) { System.out.println(“RIGHT”); //Call some function } } 当我键入除箭头键以外的任何内容(例如“a”)时,它会按原样打印TEST 。 但是,当我键入一个小键盘箭头键时,它只打印TEST ,当我键入标准箭头键时,它根本不打印任何内容。 这可能是因为我在笔记本电脑上,或者我只是在某个地方犯了一个愚蠢的错误?