我有一个Java程序,它有一个允许用户更改的数字选项,主要是通过JComboBox.唯一的问题是,每次用户关闭程序时,设置都会重置,因为它们实际上并未存储在任何地方.是否有一种标准方法可以在运行之间为Java程序提供持久状态?我可以将设置写入临时文件,但似乎应该有一个更优雅的解决方案.
javax.swing.JComboBox类不支持setText方法.有没有办法如何设置可编辑组合框的文本?喜欢我可以打电话的东西jcombobox1.setText("Text has changed!");
我有一个根面板(2行,1列),其中有面板P和标签L. P里面有一个JComboBox B. 每当我点击B时,结果下拉显示在L后面.如何修复此问题?我玩各种setComponentZOrder(),但我无法解决这个问题.我该怎么办?
我使用BlueJ,我遇到了问题.我有一个包含3个选项的组合框.每个选项都是一个字符串.这三个选项是日,周和月.我想要做的是,如果选择Day而不是变量等于30(双倍),依此类推.有人可以帮我买,告诉我如何根据组合框中选定的选项给"emailvalue"一个值吗?
编辑:我要添加我的实际程序代码,这是一个月度数据计算器.它确实编译.
这是代码:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.event.*;
import java.awt.image.*;
import java.awt.geom.*;
import java.awt.Color;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* @author (Andrew Napier, Sikander Singh)
* @version (December 18th, 2012)
*/
public class MonthlyData extends JFrame
{
private JLabel title, stitle, l1,l2,l3,l4,l5,l6,l7,l8,l9,l10,l11,l12,l13,l14;
private JLabel l15,l16,l17,l18,l19,l20,l21,l22,l23,l24,l25,l26,l27,l28,l29;
private JLabel Usage,Estimated,solu1,solu2,total2;
private JPanel panel1, panel2, panel3, panel4, panel5, panel6, panel7;
String[] deviceStrings = { "Blackberry", "Other", "Internetstick"};
String[] date = { "Day", …Run Code Online (Sandbox Code Playgroud) 我有一个带有ID,Name,Lastname的Proveedores类,我希望将这个对象添加到组合框中.
ListIterator listaNombre = listaProveedores.listIterator();
listado = new Proveedores[listaProveedores.size()];
int cont = 0;
while (listaNombre.hasNext()) {
prov = (Proveedores) listaNombre.next();
listado[cont] = prov;
cont++;
}
this.vista.cArticuloFamilia.setModel(new javax.swing.DefaultComboBoxModel(listado));
Run Code Online (Sandbox Code Playgroud)
使用此代码,我将不同的对象添加到组合框中.有用.但是现在我想为show only Name属性覆盖toString方法.现在,combobox向我展示了名称类(Proveedores)和ID.
entidades.Proveedores[idProveedores=1]
Run Code Online (Sandbox Code Playgroud)
如何覆盖它以显示Proveedores名称?
谢谢.
我正在尝试从"Java编程简介"第9版中编译以下程序.我在以下关于JComboBox的示例中收到错误:
import javax.swing.*;
public class GUIComponents
{
public static void main (String[] args)
{
JButton jbtOK = new JButton ("OK"); // Creates a button with test OK
JButton jbtCancel = new JButton ("Cancel"); // Creats a cancel button
JLabel jlblName = new JLabel ("Enter your name: "); // Creates a label with the respective text
JTextField jtfName = new JTextField ("Type Name Here"); // Creates a text field with the respective text
JCheckBox jchkBold = new JCheckBox ("Bold"); // Creates …Run Code Online (Sandbox Code Playgroud) 我有一个JPanel包含一个JComboBox.我打算在JComboBox打开时截取此面板的截图.但我不能这样做.任何的想法?
如果您运行此代码然后Alt-P在组合打开时按,您将看到问题.
public class ScreenShotDemo {
/**
* @param args
*/
public static void main(String[] args) {
final JPanel JMainPanel = new JPanel(new BorderLayout());
JPanel jp = new JPanel();
jp.add(new JComboBox<String>(new String[] { "Item1", "Item2", "Item3" }));
final JPanel jImage = new JPanel();
JMainPanel.add(jp, BorderLayout.WEST);
JMainPanel.add(jImage, BorderLayout.CENTER);
jp.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_P, InputEvent.ALT_DOWN_MASK), "screenshot");
jp.getActionMap().put("screenshot", new AbstractAction() {
@Override
public void actionPerformed(ActionEvent arg0) {
BufferedImage bf = new BufferedImage(400, 400, BufferedImage.TYPE_INT_RGB);
JMainPanel.paint(bf.getGraphics());
jImage.getGraphics().drawImage(bf, 0,0,jImage);
}
}); …Run Code Online (Sandbox Code Playgroud) 我的程序中有几个JComboBox.我想以更宽的方式更改滚动条和箭头按钮的大小.我需要这个,因为我想在Windows平板电脑上使用这个程序,它太小了,无法用手指操作.有没有可能这样做?
JComboBox comboBox;
comboBox = new JComboBox(list_apple_device.toArray());
comboBox.setSelectedItem(null);
comboBox.setFont(schrift);
comboBox.setBounds(1568, 329, 306, 43);
comboBox.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
// TODO Auto-generated method stub
textField.setText(""+e.getItem());
}
});
getContentPane().add(comboBox);
Run Code Online (Sandbox Code Playgroud)
那是我的代码.
是否可以定义与JComboBox中的实际内容不同的值?
在HTML中,它看起来如下:
<select>
<option value="value1">Content1</option>
<option value="value2">Content2</option>
<option value="value3">Content3</option>
</select>
Run Code Online (Sandbox Code Playgroud)
无论内容有多长,这里都可以获得一个简短的值.
在Java中我只知道以下解决方案:
// Creating new JComboBox with predefined values
String[] petStrings = { "Bird", "Cat", "Dog", "Rabbit", "Pig" };
private JComboBox combo = new JComboBox(petStrings);
// Retrieving selected value
System.out.println(combo.getSelectedItem());
Run Code Online (Sandbox Code Playgroud)
但在这里我只会得到"Cat","Dog"等
.问题是,我想将数据库中的所有客户名称加载到JComboBox中,然后从所选客户中检索ID.它应该如下所示:
<select>
<option value="104">Peter Smith</option>
<option value="121">Jake Moore</option>
<option value="143">Adam Leonard</option>
</select>
Run Code Online (Sandbox Code Playgroud) 我在JTable的第3和第4列中有一个JComboBox,但我不知道如何获取它的项目...问题不是获取项目的方法,而是演员表
JComboBox combo=(JComboBox) jTable1.getColumnModel().getColumn(3).getCellEditor();
Run Code Online (Sandbox Code Playgroud)
你能帮我吗?
java ×10
jcombobox ×10
swing ×9
jscrollpane ×1
jtable ×1
miglayout ×1
persistence ×1
popup ×1
screenshot ×1
z-order ×1