Tag: swing

多屏幕Java小程序具有不起作用的按钮

我正在制作一个有2个屏幕,标题和游戏画面的程序。 如果用户点击“播放”,他们可以进入下一个屏幕。 但是,如果用户试图按下“Keep Going”按钮,则在下一个屏幕上,没有任何反应。 我想知道为什么会这样,如果有人能解决它。 谢谢,这是我的代码: import java.applet.*; import java.awt.*; import javax.swing.*; import java.awt.event.*; public class ZombieDice extends Applet implements ActionListener { Panel p_card; Panel card1, card2; CardLayout cdLayout = new CardLayout (); int shotguns = 0; int brains = 0; int p1b = 0; int p2b = 0; JLabel pic1; JLabel pic2; JLabel pic3; […]

Java – 使用keytyped操作检查多个JTextField

我有3个swing文本字段和一个swing按钮。 我想要做的是当这3个字段都没有空时,将button.setEnabled()从false更改为true。 我想这不是很难,但我找不到办法去做。 在一个文本字段的keytyped操作上很容易有button.setEnabled(true),但我如何检查所有这些? 谢谢你的回复。

在Java中“交换”组件的正确方法

我试图做到这一点,当用户点击我的GUI上的东西(它与什么无关)时,一个JTable将消失,另一个JComponent将替换它。 在我使用以下代码时, contentPanel是我设置为JFrame内容窗格的JPanel : contentPanel.remove(table); contentPanel.add(component, BorderLayout.CENTER); contentPanel.updateUI(); 哪个工作完美,但我只是想确认这是正确的方法。 我的意思是,我想不出任何其他方式来实现它,但这并不一定意味着什么,如果有更好的方法,在性能或任何方面,我想知道它…

如何通过swing GUI打开任何命令行程序并将命令传递给它?

我基本上想要使用Swing将命令行程序转换为gui程序。 一旦用户按下适当的按钮,GUI就应该将相应的命令传递给命令行程序。 如果我们可以在不显示命令行程序的情况下执行此操作,那么它将完全取代该程序。 我一直试图在互联网上搜索这两天,我只发现Runtime.getRuntime()。exec(cmd)命令对打开命令提示符并打开命令行程序很有用,但是命令可以不再传递给提示,不能对该程序进行进一步的操作。 请帮忙。

更新活动频道的JList时出现问题

介绍: 我创建了一个聊天程序,客户端连接服务器。 客户端能够加入通道,当它们这样做时,jList(请参阅代码)应该通过DefaultListModel更新(getChannel()),并且应该显示连接到同一通道的所有其他客户端。 我知道getChannel(); 工作,因为我已经调试它(并使用systemoutprint)。 我已经有活动频道和用户在线的Jlists,这有效! 🙂 客户端使用回调方法通知连接到服务器的其他客户端。 我已经完成了一些调试,而且我一直在尝试重复我的代码。 inheritance人代码: 服务器: private Hashtable<String, ArrayList> channels = new Hashtable<String, ArrayList>(); public void connectChannel(String username, String channel) throws RemoteException{ setUsername(username); if(isUserRegistered(username)){ if (!channels.containsKey(channel)) { String message = “User ” + username + ” entered the channel”; channels.put(channel, new ArrayList()); channels.get(channel).add(username); notifyChannelSystem(channel, “SYSTEM”, message); notifySelf(username, “Write /? for […]

调用getListCellRendererComponent多少次?

我试图理解getListCellRendererComponent方法是如何工作的,但我不明白。 我创建了一个扩展BasicComboBoxRenderer的独立类,我添加了一个计数器,每次调用getListCellRendererComponent时都会打印一个。 然后我运行一个带有main方法的测试类,该方法显示一个框架,其中只有一个使用我的自定义渲染器类的JComboBox。 这个combobox共有3个项目,我设置了setMaximumRowCount(2),因此它只显示其中的2个。 当我第一次运行程序并出现带有combobox的帧时,计数器会通知getListCellRendererComponent被调用6次。 当框架失去焦点时(例如,当我点击我的桌面时),该方法执行1次。 当帧重新获得焦点时(单击我的帧),该方法执行1次。 当我单击箭头按钮并且第一次出现下拉列表时,计数器表示该方法执行了8次。 当我再次单击箭头按钮并且列表消失时,该方法被调用一次(这总是发生)。 当我第一次点击箭头按钮后,该方法被调用5次。 当我单击滚动条按钮上下移动时,该方法执行1次。 当我将光标移动到列表中未选择的项目上时,该方法执行2次,然后再执行1次(这是最荒谬的) 当我单击列表中的项目时,该方法执行4次。 起初我认为这个方法将被执行的次数与列表中的项目数量相同(再加上combobox显示区域中显示的一个项目)。 但是我只能理解上面的一两种情况,例如当我单击滚动条按钮并且该方法执行一次时,可能是因为渲染了一个新项目。 其余的人似乎疯了……

将水印添加到JTextArea

它们是一种向JTextArea添加水印的方法吗?

检测用户进行的屏幕分辨率更改(Java Listener?)

我有一个Java应用程序启动,创建一个GUI,并且工作得很好。 如果用户更改屏幕分辨率(从1440×900切换到1280×768),我希望能够收听该事件。 有任何想法吗? PS – 我想在事件/监听器模式下执行此操作,而不是在轮询模式下执行此操作,这样就不会浪费额外的CPU周期,例如定时器每隔N秒不断轮询屏幕大小以查看它是否已更改。

RoundRectangle2D剪辑不是很流畅

我有一个JPanel,我想剪角,使它有圆角。 这就是我在做的事情。 ((Graphics2D)g).setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON); g.setColor(color); Shape s = new RoundRectangle2D.Double(0, 0, width, height, arc, arc); g.setClip(s); 请注意,我正在将clipping设置为RoundRectangle2D。 此外,我设置anti-aliasing仍然我的圆形边缘真的是锯齿状。 软剪辑示例此链接有一种方法可以为图像执行柔和的圆角边缘。 我如何将其应用于JPanel?

如何将JEditorPane另存为pdf?

一旦点击了保存按钮,我正在尝试将JEditorPane中的文本保存为pdf。 saveAs.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { String title = JOptionPane.showInputDialog(null, “Enter a name for file…”); try{ paintToPDF(newBlanktoEdit, title); }catch (Exception exc){ exc.printStackTrace(); } } }); paintToPDF方法正确地完成了工作,但是Pane被解析为graphics2D组件,因此无法包装该行。 protected void paintToPDF(JEditorPane newPane, String title) throws Exception{ newPane.setBounds(0, 0, (int) convertToPixels(612 – 58), (int) convertToPixels(792 – 60)); Document doc = new Document(); FileOutputStream out […]