我需要创建一个包含项目列表的GUI。对于每个项目,用户应该能够add new item
和edit description
。应用程序关闭后,信息应存储在根目录中。
我知道如何制作这个项目列表,但我不知道如何允许用户添加新项目。任何人都可以给我一个代码示例吗?
特别是,我需要知道如何使add new item
工作。
答案 0 :(得分:3)
这是一个广泛的问题,但是使用swing你可以创建一个JList
,其中包含你的对象。对于按钮add new btn
,您会附加ActionListener
,基本上会创建一个新对象,并确保将此对象添加到JList
。
在此之后设置了一些行为,允许您单击列表视图中的对象,这将转换/打开新的swing JPanel,它将为您的描述提供可编辑的textview。
将所有这些更改提交到数据库中。
当然说起来容易做起来难。阅读java swing gui实现。
编辑:将listview更改为jlist(最近一直在使用android)
答案 1 :(得分:2)
这可以通过百万种不同的方式完成。如果你可以使用Angular,这是一个例子
下拉菜单的HTML标记
<li class="dropdown" ng-controller="DropdownCtrl">
<a class="dropdown-toggle">
Click me for a dropdown, yo!
</a>
<ul class="dropdown-menu">
<li ng-repeat="choice in items">
<a>{{choice}}</a>
</li>
</ul>
</li>
设置下拉列表的初始值。通常,您将使用ajax / rest调用从后端应用程序中检索此内容。
function DropdownCtrl($scope) {
$scope.items = [
"The first choice!",
"And another choice for you.",
"but wait! A third!"
];
$scope.newItem={};
}
下一步是创建一个表单,让用户添加到菜单中。有些人喜欢..
<!doctype html>
<html ng-app>
<head>
<script src="http://code.angularjs.org/1.2.11/angular.min.js"></script>
<script src="script.js"></script>
</head>
<body>
<div ng-controller="Controller">
<form novalidate class="simple-form">
Name: <input type="text" ng-model="newItem.name" /><br />
Description: <textarea ng-model="newItem.description"></textarea><br />
<button ng-click="reset()">RESET</button>
<button ng-click="addToDropdown()">SAVE</button>
</form>
<pre>form = {{user | json}}</pre>
<pre>master = {{master | json}}</pre>
</div>
</body>
</html>
然后,编写一个控制器将其添加到现有项目列表中,并将更新发送到后端。像这样的东西
function Controller($scope) {
function addToDropdown(){
$scope.items.push(angular.copy(newItem));
$scope.newItem={};
}
}
您可以使用$http service或角度或名为Restangular的模块将此数据发回给后端。
这是入门的基本指南。希望它有所帮助。