我有一个使用模型创建的JTable,它基于一个对象矩阵.对于每一行,我想使用JComboBox在特定列(第5列)中放入一些信息.我尝试过以下方法:
for(int i=0; i < n ; i++) {
.....
data[i][5] = new JComboBox(aux); // aux is a Vector of elements I wanna insert
}
table.setModel(new MyTableModel()); // MyTableModel() already takes into consideration the data[][] object
Run Code Online (Sandbox Code Playgroud)
问题是data [i] [5] =新的JComboBox(aux); 不会在JTable的特定单元格中创建JComboBox对象,而是将代码粘贴到该行中.我该怎么做才能解决这个问题?
谢谢.
我试图在JComboBoxes一个列中添加唯一的列JTable.我知道可以使用添加JComboBox到整个列
TableColumn col = table.getColumnModel().getColumn(columnNumber);
col.setCellEditor(new MyComboBoxEditor(values));
Run Code Online (Sandbox Code Playgroud)
但是我需要每个JComboBox都不同,并且里面有不同的字符串.有任何想法吗?
我有一个 JComboBox,它有一个 MIDI 文件列表,我想知道以下是否可行:当我点击 JComboBox 时,会打开一个下拉列表,当我将鼠标移到一个 MIDI 文件时,它会播放 10 秒示例声音,所以我在单击并选择该文件之前就知道文件包含什么,所以如果我有 50 个 midi 文件,我可以打开列表并在列表中上下移动鼠标而不点击它,但仍然播放 10鼠标指向的文件中的第二个样本,然后在我决定哪个样本后,单击它,该样本将成为 JComboBox 中的选定样本。
如何从 JComboBox 获得鼠标位置变化/指向事件的通知?
所以我正在尝试编译scala编译器,我已经克服了很多问题,试图完成这个,但我目前卡在quick.lib
这非常令人困惑,因为源代码直接来自scala团队,所以我知道它应该编译.还采用了我知道的旧版本在其他地方编译并测试但得到相同的错误.
任何有关该问题的帮助或正确方向上的一点都将受到高度赞赏.
quick.lib:
[scalacfork] Compiling 103 files to C:\programming\scala\build\quick\classes\library
[scalacfork] C:\programming\scala\src\swing\scala\swing\ComboBox.scala:162: error: class JComboBox takes type parameters
[scalacfork] override lazy val peer: JComboBox = new JComboBox(ComboBox.newConstantModel(items)) with SuperMixin
[scalacfork] ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ComboBox.scala:123: error: trait ComboBoxModel takes type parameters
[scalacfork] def newConstantModel[A](items: Seq[A]): ComboBoxModel = {
[scalacfork] ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ComboBox.scala:124: error: trait ComboBoxModel takes type parameters
[scalacfork] new AbstractListModel with ComboBoxModel {
[scalacfork] ^
[scalacfork] C:\programming\scala\src\swing\scala\swing\ComboBox.scala:134: error: type mismatch;
[scalacfork] found : AnyRef
[scalacfork] required: Nothing
[scalacfork] def getElementAt(n: Int) …Run Code Online (Sandbox Code Playgroud) 当我在不可编辑的JComboBox上注册ActionListener时,每当用户使用箭头键或上下文搜索(键入项目名称的第一个字母)更改所选项时,它就会触发actionPerformed().
我在这里找到了类似的问题: 如何在使用键盘滚动弹出列表时使JComboBox所选项目不被更改.但该解决方案不包括上下文搜索选项.当我输入内容时,它会触发actionPerformed().
如何确定用户何时使用回车键或鼠标点击确认所选项目?
我想在现有的组合框中添加一个数组,而不将数组对象作为参数传递给构造函数.有没有办法通过使用方法来做到这一点?
像下面这样的东西
Object[] comboBoxDisplay = myAnimals.toArray();
comboAnimals.add(comboBoxDisplay);
Run Code Online (Sandbox Code Playgroud) 我刚刚开始使用Java,之前只使用过PHP - 很难找到面向对象的东西.我正在使用Eclipse IDE.
我正在尝试制作一个能够告诉你在另一个星球上的重量的程序 - 看起来很简单
到目前为止我所做的就是在Swing中创建一半的接口(这就是所谓的?)
有时我会运行它,它会出现我所期望的,标题,文本框等......其他时候(当绝对没有做出任何更改时),它只是出现了一个空白的屏幕

该图像显示了它工作时的样子.当它不工作时,就没有任何物体.它的工作时间约占20%.
我想这可能是因为我的下拉菜单 - 或JComboBox,这一直是个头疼 - Eclipse在每次提到JComboBox后都让我添加"<Object>" - 它说"JComboBox是原始类型."参考文献泛型类型JComboBox应参数化"
我不知道为什么会这样,而且我可能只是真的很厚,抱歉,如果这是一个愚蠢的问题,但我怎么能解决这个问题,我的代码有什么问题?
package calc;
import javax.swing.*;
import java.awt.*;
public class View extends JFrame {
static String titleText = "Calculate your Mass on another Plannet";
public View(){
super(titleText);
setSize(500,400);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
FlowLayout flo = new FlowLayout();
setLayout(flo);
JPanel inputData = new JPanel();
//Labels
JLabel lblTitle = new JLabel (titleText, JLabel.CENTER);
lblTitle.setFont(new Font("Arial", Font.BOLD, 24));
JLabel lblInputMass = new JLabel ("Weight", JLabel.LEFT);
JLabel lblInputUnits = new …Run Code Online (Sandbox Code Playgroud) 我得到了例外:
Exception in thread "AWT-EventQueue-0" java.util.MissingResourceException: Couldn't find 3-letter country code for CS
at java.util.Locale.getISO3Country(Locale.java:1521)
at Business.CountryList.CountryList(CountryList.java:29)
Run Code Online (Sandbox Code Playgroud)
我把这个函数称为:
countryJComboBox.removeAllItems();
countryJComboBox.addItem(CountryList.CountryList(new String[0]));
Run Code Online (Sandbox Code Playgroud)
CountryList类如下:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package Business;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Locale;
/**
*
* @author Vivek
*/
public class CountryList {
public static Country CountryList(String[] args) {
List<Country> countries = new ArrayList<>();
Locale[] locales = Locale.getAvailableLocales(); …Run Code Online (Sandbox Code Playgroud) 任何人都可以帮我解决这个代码吗?
在这里输入代码我想问一下,当从代码中的 jComboBox3 中选择另一个值时,如何清除 JcbSub(jComboBox):
1 private void jComboBox3ActionPerformed(java.awt.event.ActionEvent evt) {
2 Connection con;
3 Statement stmt;
4 try {
5
6 Class.forName("sun.jdbc.odbc.JdbcOdbc");
7 } catch (ClassNotFoundException ex) {
8 JOptionPane.showMessageDialog(null, ex);
9 }
10 try {
11 con= DriverManager.getConnection("Jdbc:Odbc:food");
12 stmt= con.createStatement();
13 String sql="select i_name from food where category= '"+ jComboBox3.getSelectedItem().toString()+"'";
14 ResultSet RS= stmt.executeQuery(sql);
15 JcbSub.setSelectedItem("");
16 while(RS.next()){
17
18 JcbSub.addItem(RS.getString("i_name"));
19
20
21 }
22
23
24
25 } catch (SQLException ex) {
26 Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, …Run Code Online (Sandbox Code Playgroud) 我使用带有许多条目的JComboBox(数百个).我想将其下拉列表的大小限制为屏幕的垂直大小.对于不同的外观和屏幕分辨率,使用固定大小无法正常工作.
我在Windows 7上使用Java 6u25.
如果我将最大行数设置为超过适合屏幕(75)的列表项(=行)数的值(例如100),则下拉列表似乎以完整大小绘制但是最低条目永远不可见.
这是插图的截图(感谢@trashgod的SSCCE).在XP上的虚拟机中拍摄了sceenshot.

我还在另一台PC上测试了代码,所以我想我可以排除一些驱动程序问题.
我喜欢的是一个适合屏幕的下拉列表,我可以完全向下滚动到最后一个值(并查看该值).反过来说,我想看滚动条的向下滚动按钮.
是否唯一可能渲染列表的单元格并在计算中使用它?操纵组合框的高度参数不起作用.
任何想法如何解决这个问题?
让我感到困惑的是,我没有找到任何关于这个问题的参考.我假设我要么缺少明显的东西,要么我在搜索时使用了错误的关键字.如果后两者中的任何一个,我道歉请给我一个提示.
谢谢.