小编bit*_*ips的帖子

如何在Java中正确设置最小大小?

对于我在Java中创建的GUI应用程序,我有以下内容:

  • 一个JFrame,最小大小为(300,200)
  • 一个JSplitPane,其中包括:
    • 在左边,一个JScrollPane(包含一个JTree),最小大小为(100,0)(我只想将宽度限制为200)
    • 在右边,一个最小尺寸为(200,0)的JPanel

在下列条件下,尺寸调整不会给我任何问题:

  • 将JSplitPane一直调整到左侧(到JScrollPane的最小大小),然后调整窗口大小
  • 只是在一定程度上调整窗口大小

当我将JSplitPane移动得太靠近右边时会出现问题,于是调整窗口大小,JSplitPane右侧的JPanel无法遵循我设置的最小宽度.

我尝试在JScrollPane上设置最大宽度,这似乎根本没有帮助.

我必须做一些涉及最大尺寸的事情吗?或者也许有一种方法可以将监听器连接到其中一个面板以强制我想要的行为?最后,我只想让JSplitPane中的右侧面板永远不会小于200px宽.

以下是我遇到的行为示例:

import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.GridLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JSplitPane;
import javax.swing.JTree;

public class ResizeTest
{
    private JFrame frame;
    public static void main(String[] args)
    {
        EventQueue.invokeLater(new Runnable()
        {
            public void run()
            {
                try
                {
                    ResizeTest window = new ResizeTest();
                    window.frame.setVisible(true);
                }
                catch(Exception e)
                {
                    e.printStackTrace();
                }
            }
        });
    }
    public ResizeTest()
    {
        initialize();
    }
    private void initialize()
    {
        frame = new JFrame();
        frame.setMinimumSize(new Dimension(300, …
Run Code Online (Sandbox Code Playgroud)

java swing resize autoresize

10
推荐指数
1
解决办法
4万
查看次数

类似于Eclipse的线条在Emacs中的评论

在Eclipse中,突出显示多行并按下Ctrl+/选择的每一行注释.

Emacs有一个comment-or-uncomment-region接近我想要的功能,但如果该区域仅部分覆盖我试图评论的行,则表现不同.

有没有什么方法可以使函数类似comment-or-uncomment-region,但是不管区域是如何选择的,它都会对区域的每一行进行注释?

换句话说,我希望函数就像区域占据整行一样,只要区域包含该行,所以它的行为就像Eclipse的选择注释那样.

编辑:我实际上使用comment-or-uncomment-region-or-line提到的函数作为答案而不是comment-or-uncomment-regionEmacs附带的函数.

我觉得这值得一提,因为前者似乎更多地反映了Eclipse中的注释行如何工作.也就是说,如果不存在区域,则评论该点所在的线.

eclipse emacs comments elisp

10
推荐指数
2
解决办法
1653
查看次数

没有重复的排列算法?

在我制作的程序中,为一组给定的字母生成字谜,我目前的方法是:

  1. 获取所有字母的所有组合
  2. 获取每个组合组的排列
  3. 按字母顺序对结果排列进行排序
  4. 删除重复的条目

我的问题涉及排列的数学.我想知道是否有可能在删除重复条目之后计算存储所有剩余条目所需的数组大小(例如,使用重复字母的数量与排列公式一起使用).

我为我的问题含糊不清道歉,我还在研究更多关于组合和排列的问题.我将尝试详细阐述我的目标,因为我对组合和排列的理解得到了扩展,并且一旦我重新熟悉我的程序(这是我去年夏天的一个业余项目).

java math combinations permutation

8
推荐指数
1
解决办法
2455
查看次数

宏定义中的升序数

我经常使用Racket的模式匹配结构match,我想一种方法来帮助自己调试程序match,并了解Racket/Scheme宏如何工作,将创建一个宏,其中包含匹配模式的信息.

换句话说,我正在寻找创建一个宏,给定:

(match/debug 'two
  ['one 1]
  ['two 2])
Run Code Online (Sandbox Code Playgroud)

输出如下:

Case 2 <-- Printed
2      <-- Returned value
Run Code Online (Sandbox Code Playgroud)

到目前为止,主要障碍是试图使数字表示已解决的案例正确显示.

我的目标是尝试写一些像这样扩展的东西:

(match 'two
  ['one (displayln "Case 1") 1]
  ['two (displayln "Case 2") 2])
Run Code Online (Sandbox Code Playgroud)

但是我无法找出任何方法来生成那些"Case#"字符串.

这是我尝试的宏定义:

(define-syntax-rule (match/debug id [pattern value] ...)
  (let ([index 0])
    (match id
      [(begin
         (set! index (add1 index))
         pattern)
       (printf "Case ~a\n" index)
       value] ...)))
Run Code Online (Sandbox Code Playgroud)

似乎语法match不会让我做这样的事情,但这是我能想到的唯一方法.我只是习惯了Common Lisp的宏风格.

macros scheme racket

5
推荐指数
1
解决办法
50
查看次数

在Emacs中更改水平滚动

在使用Emacs之前,我使用了Nano,我想将Emacs中的水平滚动更改为更直观.仅仅为了澄清,通过水平滚动,我的意思是窗口边界的前向字符和后向字符移动,而不是Ctrl+x >命令.

我想弄清楚的主要是如何让它一次只滚动一个字母(我想像水平"平滑滚动"),或者甚至可能一次只有一个完整的窗格宽度.

我已经尝试更改一些包含"hscroll"的变量(如hscroll-margin),但它们似乎都没有让我更接近我正在寻找的行为.

我应该考虑哪些变量才能使水平滚动按我的方式工作?

emacs horizontal-scrolling smooth-scrolling

4
推荐指数
1
解决办法
431
查看次数

Emacs - 找不到关于电子布局模式的信息

我很新的Emacs的,而我无法找到有关的信息electric-layout-mode,具体electric-layout-rules.

c-toggle-auto-newline现在正在使用,但我正在尝试用Electric Layout替换它,希望它能配合电子对模式,这样我就可以将自动压缩electric-indent-mode与电子对模式的支架行为结合起来.

换句话说,我希望在按下"{"时它会给我这种行为:

int main() <- (Ideally autonewline here, as C Auto Newline does)
{
    (point)
}
Run Code Online (Sandbox Code Playgroud)

但是,我找不到有关electric-layout-rules在.emacs文件中使用它的足够信息.我electric-layout-mode没有遇到麻烦,因为在Customize缓冲区中有一个条目.

我查看了"电子布局规则"的帮助条目,但我无法理解它,我注意到它的语法类似于c-hanging-braces-alistC Auto Newline的语法,我徒劳地试图模仿语法.

长话短说,我会很感激某些使用示例electric-layout-rules,我可以将其放入我的.emacs文件中.


编辑:几周前,我在SuperUser上问了一个类似的,不那么详细的问题.我不知道如何移动问题,但我想我可以保持开放,直到这个问题得到解答,或者有人建议我现在删除它,以防其中任何相关内容.

这个电子布局模式手册页与其他问题相关联,但我没有任何关于自定义行为的内容electric-layout-rules,它明确地说明了JavaScript.答案中的代码在electric-layout-mode编辑C文件时不起作用.

emacs elisp

3
推荐指数
1
解决办法
856
查看次数

在Linux中检测已安装的硬盘驱动器

我的硬盘上有Windows 7和Ubuntu 10.10分区,并且在Windows分区中有一个桌面背景文件夹,我想在Ubuntu的启动时从Windows传输.我是Linux脚本的新手,所以我问周围和rsync听起来像用于同步部分的程序.

我的问题是如何找出我的Windows分区当前是否已挂载,或者如果自动挂载它并在之后运行我的同步脚本会更好.

另外,在点击Nautilus中分区对应的250GB卷之后,它似乎会自动将分区挂载到/ media/XXXXXXXX中(XXXXXXXX是一堆字母数字,这让我相信它是某种独特的标识符硬盘因为它总是一样的).

我想只是检查是否存在/ media/XXXXXXXX文件夹是一个可行的解决方案,但感觉有更好的方法,比如确保文件夹对应于/ dev /中的设备或沿着这些行的某些设备.

ubuntu synchronization mount

2
推荐指数
1
解决办法
8021
查看次数

Emacs - 特定的Linum定制

我正在尝试将一些相当具体的自定义应用于Emacs linum.el,使用此EmacsWiki页面上的行号(标题为Linum:从文本中分隔行号)作为指南.

我实现了对linum.el的编辑,在行号右侧添加了一个空格.我现在要弄清楚的是如何在行号的左侧添加一个额外的空格,以便行号看起来像这样:

| 1 |#include <stdio.h>  (Vertical bars for visualization)
| 2 |int main()
Run Code Online (Sandbox Code Playgroud)

我想要完成的另一个定制包括为行号着色背景的正确空间.当我为linum面设置背景时,它不会为行号右侧的新空间着色.

为了说明,以下是linum背景目前的涵盖方式:

(current) |1| #!/bin/bash   -- vs. -->   |1 |#!/bin/bash (ideal)
          |2| echo "123"    --------->   |2 |echo "123"
Run Code Online (Sandbox Code Playgroud)

我试图通过盲目修补EmacsWiki中提供正确空间的线来实现前者(左上空),但没有成功.不幸的是,由于我对Emacs和Elisp有点新鲜,我的技能还没有达到我自己能够轻易改变的地方.


链接:

EmacsWiki:行号[部分 - Linum:从文本中分隔行号 ]

http://www.emacswiki.org/emacs/LineNumbers

emacs customization whitespace line-numbers

1
推荐指数
1
解决办法
3906
查看次数