如何创建灵活的菜单?有API吗?

时间:2014-02-05 21:21:35

标签: java user-interface

我需要创建一个包含项目列表的GUI。对于每个项目,用户应该能够add new itemedit description。应用程序关闭后,信息应存储在根目录中。

我知道如何制作这个项目列表,但我不知道如何允许用户添加新项目。任何人都可以给我一个代码示例吗?

特别是,我需要知道如何使add new item工作。

2 个答案:

答案 0 :(得分:3)

这是一个广泛的问题,但是使用swing你可以创建一个JList,其中包含你的对象。对于按钮add new btn,您会附加ActionListener,基本上会创建一个新对象,并确保将此对象添加到JList

在此之后设置了一些行为,允许您单击列表视图中的对象,这将转换/打开新的swing JPanel,它将为您的描述提供可编辑的textview。

将所有这些更改提交到数据库中。

当然说起来容易做起来难。阅读java swing gui实现。

以下是一些资源1 2

编辑:将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的模块将此数据发回给后端。

这是入门的基本指南。希望它有所帮助。