Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Разработка наследуемого компонента


Автор: Jilian 8.5.2006, 21:47
Подскажите, пожалуйста, как создавать компоненты, наследуемые от уже существующего(например, от JTable). Буду благодарна за любые ссылки по этой теме.

Автор: cromm3 8.5.2006, 21:57
public class newJTable extends javax.swing.JTable{
  public newJTable() {
  }
}
вот кажется и всё… 

Автор: Jilian 9.5.2006, 12:04
Цитата(cromm3 @ 8.5.2006,  21:57)
public class newJTable extends javax.swing.JTable{
  public newJTable() {
  }
}
вот кажется и всё…

 А как же переопределить методы класса JTable? 

Автор: DarkDS 9.5.2006, 12:53
Цитата(Jilian @  9.5.2006,  12:04 Найти цитируемый пост)
 А как же переопределить методы класса JTable?  

Так же как и наследовать - просто объявить в новом компоненте.
К примеру:
Код

public class newJTable extends javax.swing.JTable
{
    public newJTable() {}

    public TableModel getModel()
    {
         return super.getModel();
    }
}

 

Автор: LSD 9.5.2006, 13:23
Jilian, ты для начала объясни зачем тебе наследовать? Если наследовать ради наследования, то cromm3, уже показал как это сделать.
А если тебя что-то не устраивает в компоненте, то тогда и надо разбираться, что именно и как с этим бороться.  

Автор: Jilian 9.5.2006, 19:50
 Может кините ссылочки на статьи по этому вопросу? 

Автор: cromm3 9.5.2006, 20:30
Мне не известно, есть ли статьи о наследовании JTable, но http://lubarsky.dev.juga.ru/Chapter06.html#Heading208 есть о наследовании.  

Автор: LSD 11.5.2006, 23:12
Цитата(Jilian @  9.5.2006,  20:50 Найти цитируемый пост)
Может кините ссылочки на статьи по этому вопросу?

Четко сформулированного вопроса, я пока так и не услышал.
http://vingrad.ru/JAVA-JAV-000128 пример реализации собсвтвенного компонента. 

Автор: Jilian 13.5.2006, 14:33
Подскажите пожалуйста.
Я создаю frame. На нем у меня TextArea, как мне сделать, чтобы при растягивании формы, растягивалось и TextArea? 

Автор: powerOn 13.5.2006, 17:47
Цитата

Подскажите пожалуйста.
Я создаю frame. На нем у меня TextArea, как мне сделать, чтобы при растягивании формы, растягивалось и TextArea?  


Используй BorderLayout для фрейма.

Код

public class TestFrame extends javax.swing.JFrame {

    public TestFrame() {
        initComponents();
    }
    
    private void initComponents() {
        jScrollPane1 = new javax.swing.JScrollPane();
        jTextArea1 = new javax.swing.JTextArea();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        jTextArea1.setColumns(20);
        jTextArea1.setRows(5);
        jScrollPane1.setViewportView(jTextArea1);

        getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);
        pack();
    }

    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new TestFrame().setVisible(true);
            }
        });
    }
    
    // Variables declaration - do not modify
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTextArea jTextArea1;
    // End of variables declaration
    
}


P.S. : Каждому вопросу - своя тема. Таковы правила.  smile 

 

Автор: Jilian 14.5.2006, 13:15
 Спасибо большое.
Но у меня слишком много мелких вопроса. Что ж? По каждому тему новую создавать? 

Автор: LSD 14.5.2006, 13:23
Цитата(Jilian @  14.5.2006,  14:15 Найти цитируемый пост)
Но у меня слишком много мелких вопроса. Что ж? По каждому тему новую создавать?

Если у тебя есть некий глобальный вопрос, типа: "Написать свой компонент отображения колонии муравьев" и куча мелких сопутсвующих вопросов типа: "А как заставить муравьев ходить по дорожкам?" то задавай их в той же теме.
Но а если вопрос вообще ничего общего не имеет с муравьями: "А сколько занимает полет до альфа центавра, на звездном крейсера 5-го ранга?", то создавай отдельную тему smile 

Автор: powerOn 14.5.2006, 13:26
Эх, http://forum.vingrad.ru/index.php?showtopic=38511 ознакомься.  smile 


Цитата(Jilian @  14.5.2006,  14:15 Найти цитируемый пост)
Но у меня слишком много мелких вопроса. Что ж? По каждому тему новую создавать?  

 Если все в одну тему писать, то тебе дольше не помогут. Подумают, что тема старая обсуждается, а вопрос-то у тебя новый. Да и форум в свалку превратиться.  smile 
 

Автор: Jilian 14.5.2006, 19:36
 Спасибки за умные советы. Но я только учусь...  smile  

Автор: LSD 14.5.2006, 19:43
Цитата(Jilian @  14.5.2006,  20:36 Найти цитируемый пост)
я только учусь...

И это правильно smile 

Автор: Jilian 14.5.2006, 20:01
 to MoonCat
Спасибо большое! Ваша прога работает, но я никак не могу переделать её
под свой класс.
У меня есть класс, наследуемый, от JFrame и непосредственно в конструкторе этого 
класса я и объявляю JTextArea. И я никак не могу со всем этим разобраться.

Код

import javax.swing.JFrame;
public class MainClassWord {
    public static void main(String[] args) {
        JFrame frame = new ClassComponents("Java Word");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(500, 500);
        frame.show();
    }
}


Код

public class ClassComponents extends JFrame  {
    private JTextArea myTextArea;
    
    public ClassComponents(String S) {
         myTextArea = new JTextArea("Enter text.");
        //ну и тут код всякий 
        }
}
 

Автор: powerOn 14.5.2006, 20:16
Код я прокомментировал, надеюсь разберешься 

Код

public class ClassComponents extends JFrame  {
    private JTextArea myTextArea;
    private JScrollPane jScrollPane1;

    public ClassComponents(String S) {
         myTextArea = new JTextArea("Enter text.");
        //ну и тут код всякий 

         // Создадим сначала JScrollPane 
         jScrollPane1 = new javax.swing.JScrollPane();

         // Добавим с него myTextArea
         jScrollPane1.setViewportView(myTextArea);

         // Добавим  jScrollPane1 в центр фрейма, используя BorderLayout.
         getContentPane().add(jScrollPane1, java.awt.BorderLayout.CENTER);
         
         // Установим операцию которая будет выполняться при закрытии фрейма - "Закрыть и Выйти"
         setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
         
         // Попросим систему установить нашему фрейму подходящий размер, т.е. что бы все компоненты были видны. 
         pack();
        }
}



   

Автор: Jilian 14.5.2006, 20:25
MoonCat
 ОГРОМНОЕ спасибо! Приятно, когда тебе кто-то помогает! 

Автор: powerOn 14.5.2006, 20:27
Пожалуйста.  smile  

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)