Tag: swing

Java桌面应用程序:SWT与Swing

我是一名Web开发人员,正在考虑构build我的第一个真正的桌面应用程序。 这个想法是构build一个工具,在没有API可用的Web应用程序中自动执行一个非常重复的任务。 我知道我想用Java。 我之前用过网页的东西,知道的语法相当好,希望应用程序尽可能简单地交叉平台。 我不太确定的是,如果我应该使用SWT或Swing。 由于我的主要用户使用Windows,我想尽可能在​​本地查看它。 Linux和Mac应该可以工作,但在这里看起来并不那么重要。 那么对于每个UI框架,Swing或SWT,争论和反对的是什么呢? 谢谢。 PS:我使用Eclipse在Windows上开发。 但是正在考虑与Netbeans玩。

如何从不同的类定义多个JButton动作

我正在编写一个程序,我需要根据单击哪个button,为单独的类执行不同的操作。 public class NewJFrame{ public static JButton b1; public static JButton b2; public static JButton b3; } public class Slot{ int value; JButton button; Slot(int value, JButton button) { this.value=value; this.button=button; } } public class Game{ Slot[] slots=new Slot[3]; Game(){ slots[0]=new Slot(1,NewJFrame.b1); slots[1]=new Slot(2,NewJFrame.b2); slots[2]=new Slot(3,NewJFrame.b3); } public void actionPerformed(ActionEvent e) { for(int i=0;i<3;i++){ if(e.getSource()==slots[i].button) […]

调用java方法来绘制graphics

我试图画出一些简单的graphics框架。 我也想能够调整我从我的主要方法绘制。 例如,设置要打印的stringvariables或矩形的坐标。 我似乎遇到的问题是,我可以设置类variables之前调用paintComponent方法。 我怎样才能改变这个代码,以便能够设置JPanel / JFramevariables之前,它画到屏幕? 谢谢 import java.awt.*; import javax.swing.*; public class Test { public static void main(String[] args) { FrameTest test_frame = new FrameTest(); test_frame.test_string = "I WANT TO DRAW THIS STRING"; } } class FrameTest extends JFrame{ private static final long serialVersionUID = 1L; String test_string; public FrameTest(){ this.test_string = "TEMP […]

Swing Worker:function get()

我的问题是,我不明白swingworker是如何工作的,因为我正在做的是使fa=worker.get()因为我有一个很长的方法,计算很多点在后台运行,因为我不'我想冻结我的界面,我想让她的结果来绘制组件图像。 但是,我不明白它在哪里去,当我做fa=worker.get()因为我的控制台打印"titi" ,我把很多其他打印看到程序的下一部分到达,但没有人打印。 请帮助我知道在get()或执行它之后编译的位置,以及如果您对如何实现我所需要的每个代码块有所了解,欢迎。 public void paintComponent(final Graphics g1){ // TODO Auto-generated method stub final int width=getWidth(); final int height=getHeight(); image= new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB); //On transforme le rectangle de base en un rectangle qui a le meme ratio que le cadre contenant l'ancien //(Il yaura dessus la meme fractale mais avec plus de fond noir) afin […]

JTable如何更改BackGround颜色

我启发了MeBigFatGuy有趣的问题 ,在这个连接我有非常具体的问题关于Graphisc2D ,如何改变BackGround Color依赖如果JViewPort可见, 1)如果1st. & last JTables Row 1st. & last JTables Row的JViewPort在JViewPort可见,然后BackGround将被着色为Color.red 2)如果1st. & last JTables Row 1st. & last JTables Row JViewPort BackGround不会在JViewPort可见,那么BackGround将被着色为Color.whatever 来自SSCCE import java.awt.*; import java.awt.event.ActionEvent; import java.awt.image.BufferedImage; import javax.swing.*; import javax.swing.RepaintManager; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import javax.swing.table.TableModel; /* https://stackoverflow.com/questions/1249278/ how-to-disable-the-default-painting-behaviour-of-wheel-scroll-event-on-jscrollpan * and * https://stackoverflow.com/questions/8195959/ swing-jtable-event-when-row-is-visible-or-when-scrolled-to-the-bottom */ public class ViewPortFlickering […]

Java Swing:如何在显示JFrame之前实现login屏幕?

我试图制作一个小游戏,首先向玩家展示一个简单的login屏幕,在这里他们可以input他们的名字(我稍后需要它来存储他们的游戏状态信息),让他们select难度等级,一旦玩家点击播放button就显示主游戏画面。 我也想让玩家导航到(有希望他们相当大)奖杯收集,同样在他们看来是一个新的屏幕。 到目前为止,我有一个主要的游戏窗口,其中有一个网格布局和一个游戏的作品(对我来说耶!)。 现在我想添加上面的function。 我怎么去做这个? 我不认为我想要去多个JFrame路线,因为我只想一次在任务栏中显示一个图标(或者将它们的可见性设置为false也会影响图标?)我是否要制作和销毁布局或面板或这样的事情? 我有什么select? 我怎样才能控制显示的内容? 特别是考虑到我的新手技能?

无论索引如何,最后一行总是从DefaultTableModel中删除

当我试图从java表中删除行时遇到一些问题。 特别是,我使用DefaultTableModel ,当我试图删除一行,使用removeRow(int row)方法,最后一行被删除,无论该row是什么。 例如,假设我们有六行。 当调用removeRow(0)或removeRow(2)或removeRow(5) ,最后一行总是被删除。 任何想法,为什么发生这种情况? 谢谢 —更新 当jtable的特定单元格被按下时,相应的行应该被删除。 class TagsTableMA extends MouseAdapter { @Override public void mousePressed(MouseEvent e){ Point p = e.getPoint(); int row = tagsJT.rowAtPoint(p); int column = tagsJT.columnAtPoint(p); if (column == COLUMN_DELETE_TAG){ DocDialog docDialog = new DocDialog(parentMainJF, true, null, "Please confirm…", "Are you sure you want to delete the \"" […]

DocumentListener Java,如何防止JTextBox中的空string?

我一直在做一个个人项目,以更好地编程。 我的目标是让它更健壮,我刚刚开始。 我是目前的计算机科学专业的学生。 无论如何,我正在制作如图所示的程序的一部分。 我计算小时工资,并提供了一些我还没有实施的产出。 我正在使用DocumentListener,所以它会自动计算。 我得到一个错误,当文本从盒子里完全删除。我试图解决它与if语句: if (tipMon.equals("") || tipMon == null) { tipMon.setText("0"); } 这是我迄今为止。 这还没有完成,我为noob代码道歉。 我在2个月前开始实际编码。 import java.awt.GridLayout; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import java.awt.event.KeyListener; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.JOptionPane; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; import javax.swing.text.Document; import javax.swing.text.FieldView; public class deliveryDocListener extends JFrame implements ActionListener, DocumentListener{ private JLabel mon, tues, […]

问题与生活的游戏

我正在研究康威的生活游戏的Java实现,作为我自己的个人项目。 到目前为止,它的工作,但规则出来错了。 预期的模式没有显示出来,应该是。 我的代码有什么问题吗? import javax.swing.*; import java.awt.*; import java.awt.event.*; public class Cell extends JComponent implements MouseListener { private int row, col; private boolean isLiving; public Cell(int r, int c) { this.row = r; this.col = c; this.addMouseListener(this); } public void isAlive(int neighbors) { if (this.isLiving) { if (neighbors < 2) { this.isLiving = false; […]

Java swing的GUI冻结

我正在编写一个使用套接字的Java客户端/服务器GUI应用程序,这里是问题: 我有一个button来开始监听指定的端口: buttonactionPerformed方法 private void listenButtonActionPerformed(java.awt.event.ActionEvent evt) { int port = Integer.parseInt(portTextfield.getText(), 10); try { socket.listen(port); } catch (IOException ex) { } } 这里是socket.listen方法 public static void listen() throws IOException { ServerSocket ss = new ServerSocket(port); while (true) new socket(ss.accept()); } “套接字”类扩展“线程” 所以在ss.accept()返回一个值之后,它会在单独的线程中创build新的套接字实例。 点击button后,GUI会冻结,因为在socket.listen方法中存在无限循环。 我怎样才能避免呢?