背景信息:
我有一个在海军的朋友,他想知道我是否可以给他开发一个小应用程序,可以在他执行警卫任务时进行计算,因为显然依靠日历是很困难的。我用了JOptionPane.showMessageDialog
给他日期的输出。我就是这样做的。
GregorianCalendar knownDate = new GregorianCalendar(year,month,day);
GregorianCalendar[] futureDates = new GregorianCalendar[10];
for(int i = 0; i < 10; i++) {
futureDates[i] = new GregorianCalendar(year,month,day);
futureDates[i].add(Calendar.DAY_OF_MONTH,10*(i+1)); // duty every 10 days
}
String newline = System.getProperty("line.separator");
StringBuilder sb = new StringBuilder("Jakes duty dates:").append(newline);
for(GregorianCalendar d : futureDates) {
sb.append(months[d.get(Calendar.MONTH)]).append(" ");
sb.append(d.get(Calendar.DAY_OF_MONTH)).append(newline);
}
JOptionPane.showMessageDialog(null,sb.toString());
“唯一的问题”是您无法选择显示的文本。他想选择它用于即时消息和电子邮件,因为只半偷懒有什么意义,对吗? (唯一的问题是在引号中,因为我有一种感觉,他会把这个范围爬到死……哈哈)
我的问题:
是否有一个“单行解决方案”来制作可选的showMessageDialog
?
我能够以垃圾神的答案为基础。虽然他建议使用JList
,我改为使用 JTextArea (它提供了我需要的选择类型。)
这就是我正在做的:
JTextArea text = new JTextArea(sb.toString());
JOptionPane.showMessageDialog(null,text);
而且它的作用就像一个魅力!
=================================================
经过一些实验后我这样做了:
DefaultListModel model = new DefaultListModel();
for(GregorianCalendar g : futureDates) {
String m = months[g.get(Calendar.MONTH)];
String d = String.valueOf(g.get(Calendar.DAY_OF_MONTH));
model.addElement(m + " " + d);
}
JList jlist = new JList(model);
JOptionPane.showMessageDialog(null,jlist);
JOptionPane.showMessageDialog(null,jlist.getSelectedValue());
第二个框显示了我在第一个框上选择的内容。我对此印象深刻。现在当然,这不是我想要的功能(顶部部分是),但这并没有使它变得不那么棒! :-)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)