使用Java中的Swing在GUI开发中正确实现MVC模式

首先,我来自MVC的一个很大的PHP背景,当我开始使用PHP时,我浏览了很多次,尽我所能并在PHP中完善我的MVC-Like设计。 很多人都回答了很多帮助我的答案。 但是在Swing中开始GUI开发之后,关于Swing中MVC的答案是完全不同的。 例如,模型也是一种观点? 根据Oracle的建议, TextElementModel在这里没有任何逻辑业务,它所做的只是标记(设置颜色等)和设置数据,如设置文本等。 当我用PHP开发时,没有AbstractModel这样的东西,因为我总是被告知模型不是一个类,或者更多,它是一个处理逻辑业务的整个层。 在PHP中,我使用了服务,数据映射器和域对象,这个惊人的答案提示我在PHP中帮助了我: 如何在MVC中构建模型? 我的尝试 再次阅读之后,我想在Java中做一个类似的事情: 我有ControllerContainer创建所有控制器: public class ControllerContainer { private JFrame frame; public ControllerContainer(JFrame rune) { this.frame = frame; } public void initControllers() { Atest test = new Atest(frame); test.registerView(“test”, new ViewTest(test)); } } 如您所见,我将带有ViewTest实例的名为“test”的视图添加到控制器,现在它将在框架中可见,并且可以接受输入。 我的Controller类,应该是抽象的,但我还没有把它抽象化: public class Controller { private JFrame frame; private Map views = new […]

为什么我得到InputMismatchException?

到目前为止我有这个: public double checkValueWithin(int min, int max) { double num; Scanner reader = new Scanner(System.in); num = reader.nextDouble(); while (num max) { System.out.print(“Invalid. Re-enter number: “); num = reader.nextDouble(); } return num; } 和这个: public void askForMarks() { double marks[] = new double[student]; int index = 0; Scanner reader = new Scanner(System.in); while (index < […]

何时使用toString()方法

这可能听起来很基本……有人可以解释一下使用toString()方法以及何时有效地使用它? 已经在谷歌搜索但找不到任何好的资源。

用于对数组进行排序的Java Comparator类

比如说,我们有以下二维数组: int camels[][] = new int[n][2]; 应该如何声明Java Comparator类,使用Arrays.sort(camels, comparator)按降序排列第一个元素? compare函数供参考: @Override public int compare(int[] a, int [] b) { return b[0] – a[0]; }

如何在Java中将jsonString转换为JSONObject

我有一个名为jsonString String变量: {“phonetype”:”N95″,”cat”:”WP”} 现在我想将其转换为JSON对象。 我在Google上搜索得更多,但没有得到任何预期的答案……

HttpServletRequest – setCharacterEncoding似乎什么都不做

我试图从请求中读取UTF-8信息。 我使用了“request.setCharacterEncoding(”UTF-8“);”,但似乎什么也没做 – 信息读取是非UTF-8。 我究竟做错了什么?

为什么Gson fromJson抛出一个JsonSyntaxException:预期BEGIN_OBJECT但是BEGIN_ARRAY?

(这篇文章是一个规范性的问题 ,下面提供了一个示例答案。) 我正在尝试使用Gson#fromJson(String, Class)将一些JSON内容反序列化为自定义POJO类型。 这段代码 import com.google.gson.Gson; public class Sample { public static void main(String[] args) { String json = “{\”nestedPojo\”:[{\”name\”:null, \”value\”:42}]}”; Gson gson = new Gson(); gson.fromJson(json, Pojo.class); } } class Pojo { NestedPojo nestedPojo; } class NestedPojo { String name; int value; } 抛出以下exception Exception in thread “main” com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but […]

使用超类初始化子类对象java

SuperClass object = new SubClass(); 为什么使用超类来实例化上面的子类对象? 因为我学习实例化对象的唯一方法是: SubClass object = new SubClass(); 我正在学习java。

线程和文件写入

我有一个使用20个线程的java程序。 他们每个人都将结果写在一个名为output.txt的文件中。 我总是在output.txt获得不同数量的行。 这可能是线程同步的问题吗? 有办法处理这个吗?

Java – 在两个字符串之间获取所有字符串的最佳方法? (正则表达式?)

这个问题一直困扰着我很长一段时间,但基本上我正在寻找最有效的方法来获取两个字符串之间的所有字符串。 我已经做了好几个月的方式现在是通过使用一堆临时索引,字符串,子串,它真的很乱。 (为什么Java没有本地方法,如String substring(String start, String end) ? 说我有一个字符串: abcabc [pattern1]foo[pattern2] abcdefg [pattern1]bar[pattern2] morestuff 最终目标是输出foo和bar 。 (后来被添加到JList中) 我一直试图在.split()加入正则表达式,但还没有成功。 我尝试使用*和s语法. 但我不认为这是我的意图,特别是因为.split()只需要一个参数来分割。 否则我认为另一种方法是使用Pattern和Matcher类? 但我对适当的程序非常模糊。