- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好吧,我正在制作一个从文本文件文件夹中提取用户信息的软件。每个文本文件有 2 行。名字/姓氏和电话号码。我正在编写打开 JFrame 的代码,该 JFrame 显示文件夹中所有用户的列表。我编写了一些代码并尝试对其进行故障排除,但我不知道为什么它不起作用。我认为这是一个 GUI 的事情,但我已经浏览了很多 java 文档示例,我看不出我做错了什么。
我在这个方法中有我的代码:
public void createDir() {
JFrame f = new JFrame();
f.setVisible(true);
f.setSize(600,400);
f.setLocationRelativeTo(null);
f.setTitle("User Directory");
DefaultListModel listModel = new DefaultListModel();
JList list = new JList(listModel);
File directory = new File("Z:\\Documents\\users");
File[] listOfUsers = directory.listFiles(); // returns a file array of all txt files in the user folder
String n = null;
String p = null;
Scanner s;
for (File file : listOfUsers) // runs for each file in the listOfUsers file array, replacing 'file' with the current userfile
{
if (file.isFile()) // if the item selected is a file
{
try
{
s = new Scanner(file); // creates a scanner to read the current user file
int i = 0; // sets the counter that is used to read name and phone number associated with the file
while(s.hasNextLine()) // reads the file using the counter to obtain the name and phone number, storing each in the 'n' and 'p' variables
{
if(i==0)
n = s.nextLine();
if(i==1)
p = s.nextLine();
i++;
}
listModel.addElement(n + " " + p); // the user shows up on the list item as "First Last ###-###-####"
s.close(); // closes the scanner for re-use
}
catch (FileNotFoundException e) // incase of exception thrown
{
System.out.print("exception occured: " + e);
}
}
}
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setVisibleRowCount(5);
list.setSelectedIndex(0);
JScrollPane listScrollPane = new JScrollPane(list); // creates a scrollpane for the JList component 'list'
JPanel dirPanel = new JPanel();
f.add(dirPanel);
dirPanel.add(listScrollPane, BorderLayout.CENTER); // adds the component
}
每当调用该方法时,都会出现 JFrame,但除了角落里的一小块白色条子外,整个窗口都是黑色的。那时,我无法关闭它并且它被卡住了。如果您认为它没有关闭是因为没有调用 f.setDefaultCloseOperation(),那是因为这是由主程序上按钮的 actionListener 调用的方法。我没有收到错误消息,我不知道我应该做什么。整个程序卡住并且无法关闭。
最佳答案
测试您的代码后,您发现存在潜在的无限循环。
while(s.hasNextLine()) // reads the file using the counter to obtain the name and phone number, storing each in the 'n' and 'p' variables
{
if(i==0)
n = s.nextLine();
if(i==1)
p = s.nextLine();
i++;
}
基本上,在这里,如果文件实际上有多于两行,则循环将永远不会退出,因为您基本上忽略任何其他行
因此,您要么需要忽略第二行之后的任何内容并 break
跳出循环,要么需要抛出 Exception
以便知道哪些文件是提出您的问题...
try (Scanner s = new Scanner(file)) {
int i = 0; // sets the counter that is used to read name and phone number associated with the file
try (Scanner s = new Scanner(file)) {
int i = 0; // sets the counter that is used to read name and phone number associated with the file
while (s.hasNextLine()) // reads the file using the counter to obtain the name and phone number, storing each in the 'n' and 'p' variables
{
switch (i) {
case 0:
n = s.nextLine();
break;
case 1:
p = s.nextLine();
break;
default:
throw new IOException("Invalid file format, more then two lines have been found!");
}
i++;
System.out.println(i);
}
listModel.addElement(n + " " + p); // the user shows up on the list item as "First Last ###-###-####"
} catch (IOException e) // incase of exception thrown
{
System.out.print("exception occured: " + e);
e.printStackTrace();
}
此外,正如已经指出的,您应该在创建 UI 之后最后调用 setVisible
。
看看The try-with-resources Statement有关 try (Scanner s = new Scanner(file)) {
行
关于java - 我正在尝试制作一个显示元素列表的 JFrame,每个元素代表目录中的一个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33092148/
我正在尝试在我的 UITableView 上调用 reloadData。我在没有界面生成器的情况下制作我的应用程序。 此代码适用于 Interface Builder,但似乎没有。 当我将我的代码与我
有人可以解释 UIAlertView 的委托(delegate)是如何工作的吗?它是自动调用还是我必须调用它?例如: - (void)alertView:(UIAlertView *)alertVie
编辑:好吧,根据其他人的建议,我创建了一个最小的示例......并且它有效,因此我将在未来与任何人分享它。这是工作代码: #include #include using namespace std
unicode 是 ,它被用在 XML 文档中。 最佳答案 查看图表:unicodelookup.com 换行符。 关于html - unicode字符是什么 代表?,我们在Stack Overflo
我有一个应用程序,可以以编程方式在配置的 Facebook 页面上发帖。我的应用程序显然已批准管理页面和发布页面权限,并且我正在使用页面访问 token 从现在开始一切正常,但最近当我在页面提要上发布
代表 NCAA 男子篮球分组的最佳数据库模式是什么?如果您不熟悉,请点击以下链接:http://www.cbssports.com/collegebasketball/mayhem/brackets/
所以我一直在阅读这个关于如何使用 Frida 的教程:https://www.frida.re/docs/functions/我遇到过以下情况: $ ./client 127.0.0.1 connec
委托(delegate)函数返回之前是否需要调用replyHandler?我需要进行几次 Web 服务 API 调用才能回复,以下实现正确吗? func session(_ session: WCSe
下面提到的是我的 textField 委托(delegate)方法,我正在使用 IQKeyBoardSwift 作为智能键盘。我尝试移除我的键盘,但我仍然没有收到任何关于接受“开始触摸”的方法的调用
我有一个表格 View ,其中几乎没有用于数据输入的文本字段和弹出窗口。我想将其中一些表示为强制性的。我不知道如何讨厌星号。任何帮助将不胜感激。 最佳答案 我认为你可以使用自定义 UITableVie
例如,我知道如何使用 numpy 对数组进行切片 v[1, :, :] 现在我想要一个函数将切片 (1,1,None) 作为输入并返回 v[1,:,:] 问题是我不知道如何表示省略号 最佳答案 您可以
修订... 应用程序的关键是与数据库服务器通信。服务器对应用程序的响应都是 XML 格式的。有几个屏幕。例如,屏幕 1 列出了用户的信息,屏幕 2 列出了用户过去的交易,允许新交易,等等。 这是我的
我想知道映射/表示内存的最佳方式是什么。我的意思是,例如,如何描述一个结构及其所有字段都被序列化。 我正在创建一个 RPC 库,它将使用 dwarf 调试数据创建客户端和服务器,因此我需要创建一个函数
如果我有一个实现了两个协议(protocol)的 View Controller : @interface CustomerOperationsViewController : UIViewContr
在 Objective-C 中我可以做这样的事情: @property (nonatomic, weak) id someObject; 如何在swift中做到这一点?我试过这个: let someO
我成功地使用了相当棒的 connection:didReceiveAuthenticationChallenge: NSURLConnectionDelegate 委托(delegate)方法。很酷。
我正在寻找原始数据类型的 @NonNull 等效 Java 注释。我知道原始数据不能为 null,但我找不到替代方法。 我想要实现的在逻辑上等同于: int mPageNumber; public v
我正在学习 Git,如果我能描述代表 Git 存储库的数学结构,那就太好了。例如:它是一个有向无环图;它的节点代表提交;它的节点有代表分支等的标签(每个节点最多一个标签,没有标签使用两次)。(我知道这
我看过很多与委托(delegate)相关的帖子,我想知道引用它们的正确方法。假设我有一个声明如下的对象: @interface MyViewController : UITableViewContro
我有这个类: public class Order { int OrderId {get; set;} string CustomerName {get; set;} } 我也声明下面的变
我是一名优秀的程序员,十分优秀!