Tag: swing

在Java GUI中读取txt文件

我想要做的就是显示txt文件的全部内容。 我该怎么做呢? 我假设我将JLabel的文本设置为包含整个文件的字符串,但是如何将整个文件转换为字符串? 此外,txt文件是否在Eclipse的src文件夹中?

如何为每个JTree节点添加不同的JComboBox?

我有一个JTree,我正在填写我正在编写的游戏数据库程序的技能。 有几个类别和子类别(实际技能),然后是水平技能(有时)。 目前我正在使用一个技能类,内部的一些选项和一些枚举来模拟这个,还有一个方法来检查技能是否属于一个类别(称为isCategory)。 还有两点需要注意: 不同类型的技能表现不同。 有些是一次购买,有几次购买,有些可以选择等 不同类别包含不同的技能。 例如,武器技能类别有不同类型的武器,但装甲技能在不同的部分。 我已经看到了通过单元格渲染器将ComboBox附加到树中每个节点的非常好的示例。 这是我找到的例子 。 我理解上面的代码,但我看不出如何将combobox附加到节点,而不是树? 我已经阅读了“ 如何使用树木 ”,并且我已经运行了,并查看了一些树的演示代码。 我可以制作基本的树,但是我发现教程有点迟钝,缺乏足够的细节来弄清楚自己如何继续。 我发现了另一个仅将叶节点渲染为复选框的示例 ,这要复杂得多。 显然我想把两者结合起来,能够拥有不同的类别,能够拥有不同的技能,不同的技能有不同的熟练程度。 然而,我能想到这样做的唯一方法是为不同的类型设置不同的JComboBoxModel但我不知道如何做到这一点,我无法找到方法。 我试图编辑复选框示例以使用ComboBoxes,但对于我的生活我无法理解。 有人可以给我一个提示,告诉我采取什么方法,因为我是Java的新手并且在努力弄清楚要做什么?

JTextField – 数字分隔(ArrayList)

有没有办法使用JTextField获取几个不同的数字? 例如,给出以下数值:2.0,3.0,4.0。 我想将它们分别放入ArrayList中。 如何处理错误的输入数据以继续输入? //in this case the resulst is “arList: 1.92239991” textField = new JTextField(“1.9, 223, 9991”); textField.addActionListener(this); ArrayList arList = new ArrayList(); String str = textField.getText(); String result = str.replaceAll(“\\s+”,””); String otherResult = result.replaceAll(“,”,””); double d = Double.parseDouble(otherResult); System.out.println(d); arList.add(d); for (Double anArList : arList) { System.out.println(“arList: ” +anArList); }

setSelectionBackGround()不为自定义渲染的单元格设置颜色

我正在使用自定义CellRenderer(TableCellRenderer的一个实例)来渲染下面描述的CLOSE列的Cells。 我为表格的setSelectionBackGround设置了一种颜色,但是所选列的bg颜色的单元格在选中时不会被绘制。 请给我任何见解,我将非常感激。 这是我的TablecellRenderer类 class LabelRenderer extends JLabel implements TableCellRenderer { Font f; Color selectionBG; Color upDirection; LabelRenderer(){ super(); f=new java.awt.Font(“Trebuchet MS”, 0, 12); selectionBG = new java.awt.Color(204, 255, 255); upDirection= new Color(0,102,0); } @Override public Component getTableCellRendererComponent( JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { //structure of passing array […]

Java Swing为基本音乐播放器绘制PlayButton

也许我的情况是一个简单的想法混乱。 如何使用Shape绘制这样的按钮? 我不介意圆角,inheritance我的圆角按钮。 import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.RenderingHints; import java.awt.Shape; import java.awt.geom.RoundRectangle2D; import javax.swing.AbstractButton; import javax.swing.ButtonModel; import javax.swing.JComponent; import javax.swing.plaf.basic.BasicButtonUI; public class PlayButtonUI extends BasicButtonUI{ protected Shape shape; @Override protected void installDefaults(AbstractButton b) { super.installDefaults(b); b.setOpaque(false);//removes that annoying default background } @Override public void paint(Graphics g, JComponent c) { Graphics2D g2 = […]

如何在JFrame中的JPanel中添加ChartPanel

我一直试图这样做.. JFreeChart chart = createChart(createDataset()); jPanel1 = new ChartPanel(chart, false); 这个JPanel1在JFrame里面(它是一个Netbeans的JFrameforms,所以我有一些标签和textAreas) jPanel1固定在Netbeans的设计者里面…在做了其他数据工作之后的某个地方我现在想要一个关于数据的所有文本的数据图表。 我尝试了其他解决方案,比如将JFreeChart转换为jPanel。 也 JFreeChart chart = createChart(createDataset()); JChartPanel P=new ChartPanel(chart,false); jPanel1.add(P); 实际代码: public class NucleotideComposition extends JFrame{ public NucleotideComposition(String filename) { DNA dna=new DNA(filename); int count moleculeName.setText(dna.getSeq_name()); Length.setText(Integer.toString(count = dna.length())); JFreeChart chart = createChart(createDataset(dna.countA(),dna.countT,dna.Countc,dna.countG)); jPanel1 = new ChartPanel(chart, false); } private static PieDataset createDataset(int […]

Java – 如何使非String对象的JComboBox显示字符串名称?

我想让JComboBox组件显示String名称,而不是引用。 但是,我不知道是怎么做到的。 下面显示了我的代码: public class Properties extends JPanel implements ItemListener { private static final long serialVersionUID = -8555733808183623384L; private static final Dimension SIZE = new Dimension(130, 80); private JComboBox tileCategory; public Properties() { tileCategory = new JComboBox(); tileCategory.setPreferredSize(SIZE); tileCategory.addItemListener(this); this.setLayout(new GridLayout(16, 1)); loadCategory(); } private void loadCategory() { //Obtains a HashMap of Strings from somewhere […]

Java – 我需要在Swing GUI程序中更新JTextFields

我有一个程序,可以查看单个记事本文件,其中包含类似于以下内容的信息: Cardiff : 3245658 Bristol : 4726485 Manchester : 4728945 这些地方和号码来自自动系统,数字每20秒左右变化一次。 我需要创建一个循环(我猜),这样当数字改变时,我的程序将回头查看记事本文件并更新JTextField的数字 Ps我已经创建了程序,以便它查看文件,获取信息需求并使用ArrayList将其放在正确的位置, 我需要帮助的是如何在文件发生变化时自动更新代码,并且我需要在不使用任何类型的Jbuttons情况下执行此Jbuttons ,它只需要自己完成。 我的整个代码: package window; import java.awt.Color; import java.awt.EventQueue; import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.util.ArrayList; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JTextField; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; public class MapTest { private JFrame frame; static JTextField txtCardiff; static […]

在Jbutton的值在另一个类中更改后,使用paintComponent绘制

我有一个名为ControlsPanel的类。 如果我在此类中按JButton(Start),则boolean(isPressed)的值将更改为true。 在另一个类(CashRegistersPanel)中,我想绘制一个Image,但只有前一个类中boolean的值为true。 当然,这个布尔值在开头是假的,所以它不会绘制任何东西。 这是我的两个class级: public ControlsPanel(final ParametersPanel panel) { start = new JButton(“Start”); stop = new JButton(“Stop”); start.setFont(new Font(“Arial”, Font.BOLD, 14)); stop.setFont(new Font(“Arial”, Font.BOLD, 14)); this.setLayout(null); this.setBackground(new Color(199,202,255)); this.add(start); this.add(stop); start.setBounds(10, 10, 280, 30); stop.setBounds(10, 50, 280, 30); stop.setEnabled(false); start.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { if (start.getText().equals(“Start”)) { start.setText(“Pause”); stop.setEnabled(true); startIsPressed […]

AutoCompleteDecorator正在中断ItemListener

我有一个editable JComboBox ,它与SwingX库的AutoCompleteDecorator集成在一起。 我的JComboBox也注册了一个ItemListener 。 现在,请看下面的代码。 AutoCompleteDecorator.decorate(ClientNameCombo); ClientNameCombo.addItemListener(new ClientNameComboAction()); private class ClientNameComboAction implements ItemListener { @Override public void itemStateChanged(ItemEvent e) { String selectedClientName= ClientNameCombo.getSelectedItem().toString(); if(!selectedClientName.equals(“Select Client”)) { int idClient = Integer.parseInt(String.valueOf(client_name_id_map.get(selectedClientName))); String sql = “r”; } } } 无论如何,我的代码都不传递int idClient = Integer.parseInt(String.valueOf(client_name_id_map.get(selectedClientName))); 它总是以NumberFormatException结束。 令人惊奇的是,如果我删除AutoCompleteDecorator那么一切正常。 有人知道如何解决这个问题吗?